UIButton: установить изображение для выделенного выделенного состояния - PullRequest
154 голосов
/ 08 апреля 2011

Я установил изображения для состояний кнопки «Обычный», «Выделенный» и «Выбранный», но когда кнопка в выбранном состоянии и я нажимаю / выделяю ее, я не вижу выделенное изображение, а просто изображение серого цвета.Можно ли установить изображение для выделенного состояния при выбранной кнопке?

мой код:

[button setImage:[UIImage imageNamed:@"normal.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"pressed.png"] forState:UIControlStateHighlighted];
[button setImage:[UIImage imageNamed:@"checked.png"] forState:UIControlStateSelected];

когда я сделаю:

[button setSelected:YES];

и нажмите кнопку, изображение "ressed.png "не выбирается.

Ответы [ 13 ]

0 голосов
/ 19 декабря 2018

Xamarin C #

Битовое ИЛИ по какой-то причине не работает

button.SetImage(new UIImage("ImageNormal"), UIControlState.Normal);
button.SetImage(new UIImage("ImagePressed"), UIControlState.Selected | UIControlState.Highlighted | UIControlState.Focused);

Следующие работы

button.SetImage(new UIImage("ImageNormal"), UIControlState.Normal);
button.SetImage(new UIImage("ImagePressed"), UIControlState.Selected);
button.SetImage(new UIImage("ImagePressed"), UIControlState.Highlighted);
button.SetImage(new UIImage("ImagePressed"), UIControlState.Focused);
0 голосов
/ 04 января 2017

Где вы хотите позвонить с

[button addTarget:self action:@selector(test:) forControlEvents:UIControlEventTouchUpInside];

Метод:

-(void)test:(id)sender{
    UIButton *button=(UIButton *)sender;
    if (_togon){
      [button setTitleColor:UIColorFromRGB(89,89, 89) forState:UIControlStateNormal];
      _togon=NO;
    }
    else{
      [button setTitleColor:UIColorFromRGB(28, 154, 214) forState:UIControlStateNormal];
      _togon=YES;
    }
}

Кредит выше для Хорхе, но я немного его улучшил, дав полное рабочее решение

0 голосов
/ 01 мая 2015

У меня были проблемы с настройкой imageView.highlighted = NO; (настройка ДА работала правильно, и изображение изменилось на выделенное).

Решение вызывало [imageView setHighlighted:NO];

Все работало правильно.

...