Wie kann ich die UIButton-Titelfarbe ändern?

189

Ich erstelle programmgesteuert eine Schaltfläche ..........

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

Wie kann ich die Titelfarbe ändern?

Hallo Welt
quelle

Antworten:

522

Sie können -[UIButton setTitleColor:forState:]dies verwenden.

Beispiel:

Ziel c

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

Swift 2

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

Swift 3

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

Vielen Dank an Richard Childan

Ben Gottlieb
quelle
38
Zum Beispiel [buttonName setTitleColor: [UIColor blackColor] forState: UIControlStateNormal];
Robert Childan
3
Ich kann nicht glauben, dass [UIButton setTitleColor: forState:] funktioniert, aber btn.titleColor = [UIColor x] nicht.
Legnus
@Lengus Ich sehe nicht, wie Sie zugreifen können btn.titleColor, es ist nur btn setTitleColorverfügbar
Alex Cio
1
Hervorragende Antwort. Es ist lächerlich, wie man den Zustand einstellen muss, um die Farbe zu ändern ... :(
Supertecnoboff
Wie wäre es mit RGB?
Umit Kaya
23

Sie erstellt die UIButtonhinzugefügt , um die ViewController, die folgende Instanzmethode zu ändern UIFont, tintColorund TextColorderUIButton

Ziel c

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

Schnell

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)
Anbu.Karthik
quelle
3
Bitte posten Sie nicht einfach den Code. Geben Sie eine Erklärung oder Information oder Verwendung zu Ihrem Code. Siehe zum Beispiel diese Antwort .
Azik Abdullah
3

Lösung in Swift 3 :

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

Dadurch wird die Titelfarbe der Schaltfläche festgelegt.

Rupom
quelle
1

Mit Swift 5 UIButtonhat eine setTitleColor(_:for:)Methode. setTitleColor(_:for:)hat die folgende Erklärung:

Legt die Farbe des Titels fest, der für den angegebenen Status verwendet werden soll.

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

Der folgende Playground-Beispielcode zeigt, wie Sie ein UIbuttonin einem erstellen UIViewControllerund dessen Titelfarbe ändern, indem Sie Folgendes verwenden 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
Imanou Petit
quelle
0

Wenn Sie Swift verwenden, geschieht Folgendes:

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

Hoffentlich hilft das!

Fagiani
quelle