2010-03-19 15 views
157

utworzyć przycisk programowo ..........Jak zmienić kolor tytułu UIButton?

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

Jak mogę zmienić kolor tytułu?

Odpowiedz

441

W tym celu można użyć -[UIButton setTitleColor:forState:].

przykład:

Cel C

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

Swift 2

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

Swift 3

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

Dzięki richardchildan

+36

Na przykład [buttonName setTitleColor: [UIColor blackColor] forState: UIControlStateNormal]; –

+1

@dkberktas Dziękujemy za sugestię. Używam go działa. – ram

+3

Nie mogę uwierzyć [UIButton setTitleColor: forState:] działa, ale btn.titleColor = [UIColor x] nie działa. – Legnus

21

utworzonego UIButton dodaje się ViewController, następujące metody instancji zmienić UIFont, tintColor i textColor z następujących UIButton

Objective-C

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

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

Proszę nie po prostu pisać kod. Podaj wyjaśnienie lub informacje na temat swojego kod. Na przykład zobacz [tę odpowiedź] (http://stackoverflow.com/a/16893057/756941). – NAZIK

0

Jeśli używasz Swift, zrobi to samo:

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

nadzieję, że pomoże!

0

Z Swift 3, UIButton ma metodę setTitleColor(_:for:). setTitleColor(_:for:) ma następującą deklarację:

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

ustawia kolor tytułu korzystania przez określony stan.


Poniższy kod zabaw pokazać, jak stworzyć UIbutton w UIViewController i zmienić jego tytuł kolor używając setTitleColor(_:for:):

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 

Wybierz Show the Assistant Editor>Timeline <Name of the page>.xcplaygroundpage na placu zabaw w celu wyświetlenia UIViewController utworzony instancja.

2

Rozwiązanie w Swift 3:

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

Spowoduje to ustawienie tytułowego kolor przycisku.