Использование UIButton в качестве переключателя - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь использовать кнопку UIB в качестве переключателя. При нажатии кнопки изображение кнопки должно измениться на (atcs.png), а состояние должно быть (.selected). При повторном нажатии на изображение изображение кнопки должно снова (actns.png) и состояние должно быть (.normal).

Ниже приведен пример моего текущего кода:

@IBOutlet weak var atcBtn: UIButton!

@IBAction func atcTapped(_ sender: UIButton) {
    if atcBtn.isSelected {
        atcBtn.setImage(UIImage(named: "atcs.png"), for:.selected)
    } else {
        atcBtn.setImage(UIImage(named: "atcns.png"), for:.normal)
    }
}

Это как-то не работает. Чего-то не хватает? Опробовал почти все решения, перечисленные здесь, но ничего.

1 Ответ

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

Сначала переместите код setImage на viewDidLoad. Нет причин повторно устанавливать эти изображения:

atcBtn.setImage(UIImage(named: "atcs.png"), for:.selected)
atcBtn.setImage(UIImage(named: "atcns.png"), for:.normal)

Далее, переключение свойства isSelected при нажатии кнопки:

@IBAction func atcTapped(_ sender: UIButton) {
    sender.isSelected = !sender.isSelected
}

Также примечательно - используйте sender вместо жесткого кодирования atcBtn.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...