Подтвердить что ты не робот

Есть ли способ setTitle на UIButton, который обновляет все UIControlStates сразу?

У меня есть UIButton, и я бы хотел обновить его название, но я бы предпочел не всегда делать это для каждого состояния, как показано ниже:

[myButton setTitle:@"Play" forState:UIControlStateNormal];

[myButton setTitle:@"Play" forState:UIControlStateHighlighted];

[myButton setTitle:@"Play" forState:UIControlStateSelected];

Есть ли лучший способ?

4b9b3361

Ответ 1

В соответствии с документацией вам нужно только позвонить:

[myButton setTitle:@"Play" forState:UIControlStateNormal];

Документы UIButton объясняют, почему:

В общем случае, если свойство не указано для состояния, по умолчанию используется значение UIControlStateNormal. Если значение для UIControlStateNormal не установлено, то по умолчанию значение по умолчанию соответствует системному значению. Поэтому, как минимум, вы должны установить значение для нормального состояния.

А именно, что если вы установите только нормальное значение, другие состояния будут ссылаться на него при установке.

Ответ 2

или вы можете установить Title:

[myButton setTitle:@"Play" forState:UIControlStateNormal|UIControlStateHighlighted|UIControlStateSelected];

Ответ 3

Вы можете создать категорию для UIButton:

@implementation UIButton (Addition)
-(void)setTitleForAllStates:(NSString *)title {
     //you can add/remove this area : UIControlStateApplication, UIControlStateDisabled, UIControlStateReserved
     [self setTitle:title forState:UIControlStateNormal];
     [self setTitle:title forState:UIControlStateSelected];
     [self setTitle:title forState:UIControlStateHighlighted];
}
@end