2010-03-19 5 views
157

создать кнопку программно ..........Как изменить цвет названия 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]; 

как я могу изменить цвет заголовка?

ответ

441

Вы можете использовать -[UIButton setTitleColor:forState:] для этого.

Пример:

Objective-C

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

Свифта 2

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

Свифта 3

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

Благодаря richardchildan

+36

Например [buttonName setTitleColor: [UIColor blackColor] forState: UIControlStateNormal]; –

+1

@dkberktas Спасибо за предложение. Я использую его. – ram

+3

Я не могу поверить [UIButton setTitleColor: forState:] работает, но btn.titleColor = [UIColor x] не .. – Legnus

21

вы создали UIButton добавляется ViewController следующий метод экземпляра для изменения UIFont, tintColor и TextColor из UIButton

Objective-C

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) 

Swift3

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

Пожалуйста, не просто отправьте код. Дайте какое-нибудь объяснение, информацию или использование Например, см. [этот ответ] (http://stackoverflow.com/a/16893057/756941). – NAZIK

0

Если вы используете Swift, это будет делать то же самое:

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

Надежда, что помогает!

0

С Swift 3, UIButton имеет метод setTitleColor(_:for:). setTitleColor(_:for:) имеет следующее заявление:

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

Устанавливает цвет заголовка для использования в указанном состоянии.


Следующая площадка кода показано, как создать UIbutton в 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: 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 

Выберите Show the Assistant Editor>Timeline <Name of the page>.xcplaygroundpage в Playground, чтобы отобразить UIViewController созданную пример.

2

Решение в Swift 3:

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

Это установит название цвет кнопки.

Смежные вопросы