Изменить изображение при нажатии кнопки с помощью Objective-C - PullRequest
0 голосов
/ 01 сентября 2018

Я пытаюсь переключаться между двумя разными изображениями при нажатии на кнопку. Ниже приведен код, который я написал до сих пор. Однако при этом будет отображаться только одно изображение, а не переключаться между ними.

-(IBAction)show {

    BOOL img = true;

    if (img = true) {
    UIImage *img1 = [UIImage imageNamed:@"UnCheck.png"];
    [imageview setImage:img1];
        }
    else {
        UIImage *img = [UIImage imageNamed:@"Check.png"];
        [imageview setImage:img];
    }
}

1 Ответ

0 голосов
/ 01 сентября 2018

У вас есть несколько проблем с вашим кодом:

Во-первых, img - это локальная переменная внутри вашего обработчика крана, поэтому при каждом запуске этой функции она будет установлена ​​на true.

Во-вторых, ваш оператор if фактически содержит присваивание (=) вместо сравнения (==), поэтому даже если img еще не было true, это было бы при выполнении if заявление.

Все это означает, что ваше изображение всегда будет UnCheck.png.

Вам необходимо использовать свойство вне функции, чтобы состояние отслеживалось правильно. img также довольно плохое имя переменной, checked или isChecked, вероятно, лучше.

Тогда ваш метод-обработчик кнопок просто должен переключить это свойство и установить соответствующее изображение.

@property BOOL isChecked;

-(IBAction)show {
    self.isChecked = !self.isChecked;

    NSString *imageName = self.isChecked ? @"Check.png":@"UnCheck.png";
    UIImage *img = [UIImage imageNamed:imageName];
    [imageview setImage:img];
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...