iPhone: как я могу поменять цвет текста UIButton?

#ios4 #uibutton

#ios4 #uibutton

Вопрос:

Я создаю UIButtons во время выполнения и обрабатываю касание кнопки; Я хотел бы изменить цвет текста кнопки при нажатии кнопки и вернуться к исходному цвету при касании другой кнопки; как я могу сделать это программно?

Ответ №1:

 [aButton setTitleColor:[UIColor grayColor] forState: UIControlStateNormal]
  

затем вы можете изменить цвет при нажатии другой кнопки, используя тот же код, что и выше, но с другим цветом.

Комментарии:

1. хорошо, но если у меня 20 кнопок, должен ли я переключаться между ними каждый раз? Я думаю, было бы неплохо обрабатывать состояния автоматически

Ответ №2:

Одним из способов циклического перемещения по кнопкам было бы установить теги на кнопках, которые вы хотите циклически перемещать. Я использую этот фрагмент кода для настройки типов клавиш возврата клавиатуры для каждого из моих UITextFiles:

 NSInteger tag = 1;  
UIView *aView;
while ((aView = [contentView viewWithTag:tag])) {  
    if([aView isKindOfClass:[UITextField class]]){
        [(UITextView *)aView setReturnKeyType:UIReturnKeySend];
    }
    tag  ;  
}
  

Итак, я предполагаю, что вы могли бы сделать что-то вроде этого:

 NSInteger tag = 1;  
UIView *aView;
while ((aView = [contentView viewWithTag:tag])) {  
    if([aView isKindOfClass:[UIButton class]]){
        [ aView setTitleColor:[UIColor grayColor] forState: UIControlStateNormal];
    }
    tag  ;  
}