У меня есть немного кода для воспроизведения звукового эффекта при нажатии кнопки. Это работает нормально, поэтому я попытался добавить изменение цвета фона при нажатии кнопки, но, похоже, это не работает (хотя ошибок не показывает). Что я делаю неправильно?
Как я их обозначил:
var soundEffectWhats: AVAudioPlayer = AVAudioPlayer()
var whatsup: UIButton = UIButton()
IBAдействие:
@IBAction func whatsup(_ sender: Any) {
soundEffectWhats.play()
whatsup.backgroundColor = UIColor.blue}
Но он пишет, что нажатие на кнопку срабатывает. Так что я думаю, что он добавил whatsup к представлению? @Cameron: Пожалуйста, поделитесь дополнительным кодом.
@ElTomato, что ты имеешь в виду?
Вместо whatsup.backgroundColor = UIColor.blue вы можете попробовать: (отправитель как! UIButton).backgroundColor = UIColor.blue
Ах, да, спасибо, Шон! если вы опубликуете как ответ, я с радостью отмечу его как принятый. Спасибо еще раз!
Вы должны использовать
(sender as! UIButton).backgroundColor = UIColor.blue
вместо
whatsup.backgroundColor = UIColor.blue
позаботиться о том, чтобы вы получили правильную ссылку.
Если вы хотите быть осторожным, вы можете использовать:
(sender as? UIButton)?.backgroundColor = UIColor.blue
но будьте осторожны, что backgroundColor будет выполнен только в том случае, если приведение было успешным.
ОБНОВИТЬ:
Как отметил Султан в комментариях, вы можете объявить sender
как UIButton
напрямую:
@IBAction func whatsup(_ sender: UIButton) {
soundEffectWhats.play()
sender.backgroundColor = UIColor.blue
}
Вы должны объявить sender
как UIButton
в первую очередь.
Это потому, что вы еще даже не добавили whatsup для просмотра?