首页 > 解决方案 > Swift - UIButton 背景颜色在点击时不会改变

问题描述

单击按钮时,我有一些代码可以播放声音效果。这工作正常,所以我尝试在单击按钮时添加背景颜色更改,但它似乎不起作用(即使它没有显示错误)。我究竟做错了什么?

我将它们标记为:

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

IBA动作:

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

标签: iosswiftuibutton

解决方案


你应该使用

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

代替

whatsup.backgroundColor = UIColor.blue

小心,你得到正确的参考。

如果你想小心,你可以使用:

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

但请注意,只有在转换成功的情况下才会执行 backgroundColor。

更新:正如Sulthan在评论中提到的,您可以直接声明senderUIButton

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

推荐阅读