Як я можу змінити колір заголовка 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:]для цього.

Приклад:

Ціль-С

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

Швидкий 2

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

Швидкий 3

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

Завдяки Річардділяну


38
Наприклад, [buttonName setTitleColor: [UIColor blackColor] forState: UIControlStateNormal];
Роберт Чайлдан

3
Я не можу повірити [UIButton setTitleColor: forState:] працює, але btn.titleColor = [UIColor x] не робить ..
Legnus

@Lengus Я не бачу, як можна отримати доступ btn.titleColor, є лише btn setTitleColorдоступний
Alex Cio

1
Чудова відповідь. Смішно, як вам потрібно встановити стан, щоб змінити колір, хоча ... :(
Supertecnoboff

Як щодо RGB?
Umit Kaya

23

Ви створений UIButtonдодається ViewControllerнаступний метод примірника для зміни UIFont, tintColorі TextColorзUIButton

Ціль-С

 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)

Швидкий3

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

3
Будь ласка, не публікуйте код. Дайте пояснення, інформацію чи використання щодо свого коду. Наприклад, дивіться цю відповідь .
Азік Абдулла

3

Рішення в Swift 3 :

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

Це встановить колір заголовка кнопки.


1

З Swift 5 UIButtonє setTitleColor(_:for:)метод. setTitleColor(_:for:)має таку заяву:

Встановлює колір заголовка для використання у вказаному стані.

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

Наведений нижче зразок коду дитячої площадки показує, як створити " UIbuttona" 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)

Сподіваюся, що це допомагає!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.