Làm cách nào để thay đổi màu tiêu đề UIButton?


189

Tôi tạo một nút lập trình ..........

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];

Làm thế nào tôi có thể thay đổi màu tiêu đề?

Câu trả lời:


522

Bạn có thể sử dụng -[UIButton setTitleColor:forState:]để làm điều này.

Thí dụ:

Mục tiêu-C

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

Swift 2

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

Swift 3

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

Cảm ơn Richard


38
Ví dụ [buttonName setTitleColor: [UIColor blackColor] forState: UIControlStateN normal];
Robert Childan

3
Tôi không thể tin [UIButton setTitleColor: forState:] hoạt động nhưng btn.titleColor = [UIColor x] không ..
Legnus

@Lengus Tôi không thấy cách bạn có thể truy cập btn.titleColor, chỉ btn setTitleColorcó sẵn
Alex Cio

1
Câu trả lời tuyệt vời. Thật nực cười khi bạn phải thiết lập trạng thái chỉ để thay đổi màu mặc dù ... :(
Supertecnoboff

Làm thế nào với RGB?
Umit Kaya

23

Bạn đã tạo UIButtonđược thêm ViewController, Phương pháp dụ sau đây để thay đổi UIFont, tintColorTextColorcủaUIButton

Mục tiêu-C

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

Nhanh

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
Xin vui lòng không chỉ đơn giản là gửi mã. Đưa ra một số giải thích hoặc thông tin hoặc sử dụng về mã của bạn. Ví dụ, xem câu trả lời này .
Azik Abdullah

3

Giải pháp trong Swift 3 :

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

Điều này sẽ đặt màu tiêu đề của nút.


1

Với Swift 5, UIButtoncó một setTitleColor(_:for:)phương pháp. setTitleColor(_:for:)có tuyên bố sau:

Đặt màu của tiêu đề để sử dụng cho trạng thái được chỉ định.

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

Mã mẫu Playground sau đây cho biết cách tạo UIbuttonmột UIViewControllervà thay đổi màu tiêu đề bằng cách sử dụng 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

Nếu bạn đang sử dụng Swift, điều này sẽ làm tương tự:

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

Mong rằng sẽ giúp!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.