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
。