UIButton выделяет изображения состояний - PullRequest
0 голосов
/ 03 октября 2011

У меня есть UIButton, и я установил его с помощью:

UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];

UIImage *imageNormal = [UIImage imageNamed:@"normal.png"];
UIImage *imageNormalHover = [UIImage imageNamed:@"normalHover.png"];
UIImage *imageSelected = [UIImage imageNamed:@"selected.png"];
UIImage *imageSelectedHover = [UIImage imageNamed:@"selectedHover.png"];

[myButton setImage:imageNormal forState:UIControlStateNormal];
[myButton setImage:imageSelected forState:UIControlStateSelected];

if (boolVar) {
    [myButton setSelected:YES];
    [myButton setImage:imageSelectedHover forState:UIControlStateHighlighted];
} else {
    [myButton setImage:imageNormalHover forState:UIControlStateHighlighted];
}

Проблема в том, что когда состояние нормальное и я пытаюсь нажать кнопку, я правильно вижу изображение normalHover.png, но когдасостояние выбрано, и я пытаюсь нажать на кнопку, которую вижу normalHover.png, а не selectedHover.png.Кажется, что с UIButton я не могу изменить подсвеченное изображение.У вас как решить?

Ответы [ 2 ]

5 голосов
/ 03 октября 2011

Вам необходимо установить изображение для комбинированного состояния UIControlStateSelected | UIControlStateHighlighted:

[myButton setImage:imageSelectedHover forState:(UIControlStateSelected | UIControlStateHighlighted)];

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

0 голосов
/ 29 сентября 2015

В быстром это делается с помощью union:

myButton.setImage(imageSelectedHover, forState: UIControlState.Selected.union(UIControlState.Highlighted))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...