Лучший способ установить заголовок кнопки для 2 состояний
Вот как я это делаю сейчас
[self.distanceFilter setTitle:strValueForDistanceFilter forState:UIControlStateNormal];
[self.distanceFilter setTitle:strValueForDistanceFilter forState:UIControlStateSelected];
Что было бы лучшим способом сделать так, чтобы название изменялось для бота UIControlStateNormal и даже если кнопка выбрана
Что я пробовал:
[self.distanceFilter setTitle:strValueForDistanceFilter forState:UIControlStateNormal | UIControlStateSelected];
Дело в том, что UIControlStateNormal равно 0. Так что UIControlStateNormal | UIControlStateSelected - это просто UIControlStateSelected. Это означает, что заголовок не изменяется, когда кнопка не выбрана.
3 ответа
Решение
Ну, это звучит как идеальная работа для категории на UIButton
:
- (void)setTitleForAllStates:(NSString *)title
{
for (UIControlState i = 0; i <= 3; i++)
[self setTitle:title forState:i];
}
Вы можете использовать |
выполнить bitwsie ИЛИ, вот так:
[self.distanceFilter setTitle:strValueForDistanceFilter forState:UIControlStateNormal | UIControlStateSelected];
Каким-то другим способом,
#define UIControlStateAll UIControlStateNormal | UIControlStateSelected | UIControlStateHighlighted
[self.distanceFilter setTitle:strValueForDistanceFilter forState:UIControlStateAll];