2013-10-09 6 views
5

У меня есть представление, и я создал в нем около 8 кнопок. Цвет заголовка кнопок белого цвета. Я хочу изменить цвет названия кнопки на зеленый цвет при нажатии. И если я нажму любую другую кнопку, цвет заголовка кнопки, который был нажат ранее, должен стать белым, а текущий цвет заголовка кнопки должен стать зеленым.Как изменить цвет названия UIButton при нажатии?

Как это сделать?

+0

Это актуально не дублирующий вопрос. Спасибо за правильный ответ @Bordz –

ответ

11

Инициализировать все кнопки, как этот

[mybutton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
[mybutton setTitleColor:[UIColor greenColor] forState:UIControlStateSelected]; 
[mybutton addTarget:self action:@selector(onclick:) forControlEvents:UIControlEventTouchUpInside]; 

затем изменить выбранное состояние вас кнопки при нажатии

-(void)onclick:(id)sender{ 
UIButton *button = (UIButton *)sender; 
button.selected = !button.selected; 
} 
0

Создайте IBAction для всех кнопок, создайте объект @property (strong, nonatomic) UIButton *currentButton. В акции сделайте следующее:

-(IBAction)buttonClicked:(id)sender 
{ 
    UIButton *buttonSender = (UIButton *)sender; 

    [self.currentButton setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal]; 
    self.currentButton = buttonSender; 
    [self.currentButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal]; 
} 
0

состояние управления Набор кнопок:

[btnOk setTitleColor:[UIColor yellowColor] forState:UIControlStateSelected]; 
[btnOk setTitleColor:[UIColor yellowColor] forState:UIControlStateHighlighted]; 
[btnOk setTitleColor:[UIColor yellowColor] forState:UIControlStateNormal]; 
Смежные вопросы