2010-03-19 23 views
157

ich eine Taste ..........Wie kann ich die UIButton-Titelfarbe ändern? programmatisch

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 Titel Farbe ändern?

Antwort

441

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

Beispiel:

Objective-C

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

Swift 2

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

Swift 3

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

Dank richardchildan

+36

Zum Beispiel [buttonName setTitleColor: [UIColor blackColor] forState: UIControlStateNormal]; –

+1

@dkberktas Danke für unseren Vorschlag. Ich benutze es funktioniert. – ram

+3

Ich kann nicht glauben [UIButton setTitleColor: forState:] funktioniert aber btn.titleColor = [UIColor x] nicht .. – Legnus

21

Sie erstellt die UIButton die Viewcontroller hinzugefügt wird, die folgende Instanzmethode UIFont, tintColor und Textfarbe der UIButton

Objective-C

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

ändern Swift

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) 
+2

Bitte poste nicht einfach den Code. Geben Sie eine Erklärung oder Informationen oder Verwendung über Ihre B. siehe [diese Antwort] (http://stackoverflow.com/a/16893057/756941). – NAZIK

0

Wenn Sie Swift verwenden, dies wird das gleiche tun:

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

Hoffnung, das hilft!

0

Mit Swift 3 hat UIButton eine setTitleColor(_:for:) Methode. setTitleColor(_:for:) hat die folgende Erklärung ab:

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

Legt die Farbe des Titels für den angegebenen Zustand zu verwenden.


Die folgende Spielplatz Code zeigen, wie eine UIbutton in einem UIViewController zu erstellen und es ist Farbe Titel setTitleColor(_:for:) mit ändern:

import UIKit 
import PlaygroundSupport 

class ViewController: UIViewController { 

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

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

     // Set button's attributes 
     button.setTitle("Print 0", for: UIControlState.normal) 
     button.setTitleColor(UIColor.orange, for: UIControlState.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: UIControlEvents.touchUpInside) 

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

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

} 

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

Select Show the Assistant Editor>Timeline <Name of the page>.xcplaygroundpage in Spielplatz, um die UIViewController angezeigt werden erstellt Beispiel.

2

Lösung in Swift 3:

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

Dies wird die Titelfarbe Schaltfläche.

Verwandte Themen