Ios Swift-UIButton背景颜色在单击时不会更改

Ios Swift-UIButton背景颜色在单击时不会更改,ios,swift,uibutton,Ios,Swift,Uibutton,当我的按钮被点击时,我有一些代码来播放声音效果。这很好,所以我尝试在点击按钮时添加背景颜色更改,但似乎不起作用(即使它没有显示错误)。我做错了什么 我给他们贴上的标签是: var soundEffectWhats: AVAudioPlayer = AVAudioPlayer() var whatsup: UIButton = UIButton() IBAction: @IBAction func whatsup(_ sender: Any) { soundEffectWhats.pl

当我的按钮被点击时,我有一些代码来播放声音效果。这很好,所以我尝试在点击按钮时添加背景颜色更改,但似乎不起作用(即使它没有显示错误)。我做错了什么

我给他们贴上的标签是:

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

 @IBAction func whatsup(_ sender: Any) {
    soundEffectWhats.play()
    whatsup.backgroundColor = UIColor.blue}
你应该使用

(sender as! UIButton).backgroundColor = UIColor.blue
而不是

whatsup.backgroundColor = UIColor.blue
注意,你得到了正确的参考

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

(sender as? UIButton)?.backgroundColor = UIColor.blue
但是要小心,只有在演员成功的情况下,背景色才会被执行

更新: 正如Sulthan在评论中提到的,您可以直接将
发送者
声明为
ui按钮

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

那是因为你甚至还没有添加要查看的内容?但他写道,点击按钮就可以了。所以我认为他给一个观点增加了什么@卡梅隆:请分享更多代码。@ElTomato你是什么意思?你可以试试:(发件人为!UIButton)。backgroundColor=UIColor.blueah是的,谢谢你,肖恩!如果你作为一个答案张贴,我会很高兴地标记为接受它。再次感谢!您首先应该将
sender
声明为
UIButton