ios - Swift - UIButton 背景颜色在点击时不会改变
问题描述
单击按钮时,我有一些代码可以播放声音效果。这工作正常,所以我尝试在单击按钮时添加背景颜色更改,但它似乎不起作用(即使它没有显示错误)。我究竟做错了什么?
我将它们标记为:
var soundEffectWhats: AVAudioPlayer = AVAudioPlayer()
var whatsup: UIButton = UIButton()
IBA动作:
@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
但请注意,只有在转换成功的情况下才会执行 backgroundColor。
更新:正如Sulthan在评论中提到的,您可以直接声明sender
为UIButton
:
@IBAction func whatsup(_ sender: UIButton) {
soundEffectWhats.play()
sender.backgroundColor = UIColor.blue
}
推荐阅读
- python - 如何从键盘而不是python中的文件读取输入
- c++ - Qt3D - 在其他实体前面绘制实体(位置完全相同)
- apache-kafka - 将 Kafka 升级到 2.5.0 后,不推荐使用 ZkUtils
- c# - Serilog,文件接收器,更改输出模板
- angular - NullInjectorError:没有提供 ConfigService (HttpClient)
- javascript - React 不会渲染从异步函数返回的东西
- git - git不会将一个文件同步到我的macOS本地,因为还有另一个大写文件名,我该怎么办?
- javascript - 尝试在本机反应中更改日历上的标记日期会导致语法错误
- flutter - Flutter - 如何放置动态图块并根据父宽度换行到下一行
- javascript - 覆盖全局字体大小:62%