Swift - цвет фона UIButton не меняется при нажатии - PullRequest
0 голосов
/ 09 апреля 2019

У меня есть немного кода для воспроизведения звукового эффекта при нажатии на мою кнопку.Это работает нормально, поэтому я попытался добавить изменение цвета фона при нажатии кнопки, но, похоже, он не работает (хотя он не показывает ошибок).что я делаю не так?

Что я замаскировал их как:

var soundEffectWhats: AVAudioPlayer = AVAudioPlayer()
var whatsup: UIButton = UIButton()

IBAction:

 @IBAction func whatsup(_ sender: Any) {
    soundEffectWhats.play()
    whatsup.backgroundColor = UIColor.blue}

1 Ответ

1 голос
/ 09 апреля 2019

Вы должны использовать

(sender as! UIButton).backgroundColor = UIColor.blue

вместо

whatsup.backgroundColor = UIColor.blue

позаботиться о том, чтобы вы получили правильную ссылку.

Если вы хотите быть осторожным, вы можете использовать:

(sender as? UIButton)?.backgroundColor = UIColor.blue

но учтите, что backgroundColor будет выполняться только в том случае, если приведение прошло успешно.

UPDATE: Как Sulthan упомянул в комментариях, вы можете объявить sender как UIButton напрямую:

@IBAction func whatsup(_ sender: UIButton) {
    soundEffectWhats.play()
    sender.backgroundColor = UIColor.blue
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...