ฉันจะเปลี่ยนสีของชื่อ UIButton ได้อย่างไร


189

ฉันสร้างปุ่มโดยทางโปรแกรม ..........

button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self action:@selector(aMethod:)
forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Show View" forState:UIControlStateNormal];
button.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
[view addSubview:button];

ฉันจะเปลี่ยนสีของชื่อได้อย่างไร

คำตอบ:


522

คุณสามารถใช้-[UIButton setTitleColor:forState:]การทำเช่นนี้

ตัวอย่าง:

Objective-C

[buttonName setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

สวิฟท์ 2

buttonName.setTitleColor(UIColor.blackColor(), forState: .Normal)

สวิฟท์ 3

buttonName.setTitleColor(UIColor.white, for: .normal)

ขอบคุณrichardchildan


38
ตัวอย่างเช่น [buttonName setTitleColor: [UIColor blackColor] สำหรับรัฐ: UIControlStateNormal];
Robert Childan

3
ฉันไม่อยากเชื่อเลยว่า [UIButton setTitleColor: forState:] ทำงานได้ แต่ btn.titleColor = [UIColor x] ไม่ได้ ..
Legnus

@Lengus ฉันไม่เห็นวิธีการที่คุณสามารถเข้าถึงbtn.titleColorมีเพียงbtn setTitleColorใช้ได้
อเล็กซ์ประมวล

1
คำตอบที่ยอดเยี่ยม มันไร้สาระวิธีที่คุณต้องตั้งค่าสถานะเพียงเพื่อเปลี่ยนสีแม้ว่า ... :(
Supertecnoboff

แล้ว RGB ล่ะล่ะ?
Umit Kaya

23

คุณสร้างUIButtonจะเพิ่มViewControllerความต่อไปนี้วิธีการเช่นการเปลี่ยนแปลงUIFont, tintColorและTextColorของUIButton

Objective-C

 buttonName.titleLabel.font = [UIFont fontWithName:@"LuzSans-Book" size:15];
 buttonName.tintColor = [UIColor purpleColor];
 [buttonName setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];

รวดเร็ว

buttonName.titleLabel.font = UIFont(name: "LuzSans-Book", size: 15)
buttonName.tintColor = UIColor.purpleColor()
buttonName.setTitleColor(UIColor.purpleColor(), forState: .Normal)

Swift3

buttonName.titleLabel?.font = UIFont(name: "LuzSans-Book", size: 15)
buttonName.tintColor = UIColor.purple
buttonName.setTitleColor(UIColor.purple, for: .normal)

3
กรุณาอย่าโพสต์รหัส ให้คำอธิบายหรือข้อมูลหรือการใช้งานเกี่ยวกับรหัสของคุณ ตัวอย่างเช่นดูคำตอบนี้
Azik Abdullah

3

โซลูชันในSwift 3 :

button.setTitleColor(UIColor.red, for: .normal)

นี่จะเป็นการตั้งค่าสีของปุ่ม


1

ด้วย Swift 5 UIButtonมีsetTitleColor(_:for:)วิธีการ setTitleColor(_:for:)มีการประกาศดังต่อไปนี้:

ตั้งค่าสีของชื่อที่จะใช้สำหรับสถานะที่ระบุ

func setTitleColor(_ color: UIColor?, for state: UIControlState)

ต่อไปนี้แสดงสนามเด็กเล่นโค้ดตัวอย่างวิธีการสร้างUIbuttonในUIViewControllerและเปลี่ยนเป็นสีชื่อที่ใช้setTitleColor(_:for:):

import UIKit
import PlaygroundSupport

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.white

        // Create button
        let button = UIButton(type: UIButton.ButtonType.system)

        // Set button's attributes
        button.setTitle("Print 0", for: UIControl.State.normal)
        button.setTitleColor(UIColor.orange, for: UIControl.State.normal)

        // Set button's frame
        button.frame.origin = CGPoint(x: 100, y: 100)
        button.sizeToFit()

        // Add action to button
        button.addTarget(self, action: #selector(printZero(_:)), for: UIControl.Event.touchUpInside)

        // Add button to subView
        view.addSubview(button)
    }

    @objc func printZero(_ sender: UIButton) {
        print("0")
    }

}

let controller = ViewController()
PlaygroundPage.current.liveView = controller

0

หากคุณใช้ Swift สิ่งนี้จะทำเช่นเดียวกัน:

buttonName.setTitleColor(UIColor.blackColor(), forState: .Normal)

หวังว่าจะช่วย!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.