В подклассе UIButton:Невозможно установить цвет фона UIButton, если выбрано?
- (void) setHighlighted:(BOOL)highlighted {
[super setHighlighted:highlighted];
if (highlighted) {
self.backgroundColor = [UIColor redColor];
}
else {
self.backgroundColor = [UIColor blueColor];
}
}
- (void)setSelected:(BOOL)selected {
[super setSelected:selected];
if (selected) {
self.backgroundColor = [UIColor greenColor]; //this happens
}
else {
self.backgroundColor = [UIColor blueColor];
}
}
Я вижу красный цвет, когда подсвечивается кнопка. Но когда я устанавливаю button.selected = YES, я никогда не вижу зеленый цвет. Почему setHighlighted работает, но setSelected не работает?
Я могу установить точку останова на линии «это случилось», и это происходит. Но цвет фона кнопки не меняется на зеленый.
Какие атрибуты вы установили в построителе интерфейса? – Jared
есть несколько ответов. http://stackoverflow.com/questions/4049103/iphone-how-to-set-backgroundcolor-of-uibutton-with-buttontype-uibuttontypecust похоже, что одним из распространенных решений является установка фонового изображения, которое в основном представляет собой 1x1 пиксель цвет. Это решение работает, потому что вы устанавливаете фоновое изображение для каждого конкретного состояния. Я не совсем уверен, почему ваш код не работает. кнопка не выбирается сразу после ее выбора? – mitrenegade