Swift-UIButton背景色在单击时不会改变

时间:2019-04-09 00:41:03

标签: ios swift uibutton

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

我对它们的标为:

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

IBAction:

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

1 个答案:

答案 0 :(得分:1)

您应该使用

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

代替

whatsup.backgroundColor = UIColor.blue

请注意,您会获得正确的参考。

如果要小心,可以使用:

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

但是请注意,只有在强制转换成功后才会执行backgroundColor。

更新: 正如 Sulthan 在评论中提到的那样,您可以将sender直接声明为UIButton

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