【发布时间】:2019-03-21 04:34:16
【问题描述】:
我想为我的应用添加声音。我添加了一个带有两个图像的 UIButton,soundON 和 soundOFF。 当我第一次在应用程序中调用声音设置时,它们会随着每张图像而正常切换。 但是,当我第二次及以后返回声音设置时,就像显示 soundOn 图像时 soundOff 图像并没有消失一样。 奇怪的是代码如此简短。
func soundButton() {
sounds = UIButton(frame : CGRect(x: 65, y: 70, width: 40, height:40))
sounds.setImage(UIImage(named : "soundON"), for : .normal)
sounds.setImage(UIImage(named : "soundOFF"), for : .selected)
sounds.showsTouchWhenHighlighted = true
sounds.addTarget(self, action: #selector(soundButtonTapped), for: .touchUpInside)
self.soundView.addSubview(sounds)
}
@objc func soundButtonTapped(_ sender: Any) {
sounds.isSelected.toggle()
isSoundOn.toggle()
}
我添加了一个视频来展示这个问题,因为这将节省大量的打字时间。
http://www.reeflifeapps.com/soundError.mov
非常感谢任何帮助。
更新: 我在拼图启动时隐藏了 UIView 上的按钮。当用户按下“声音设置”图标时,声音设置 UIView 被取消隐藏。我有这个功能上的按钮来取消隐藏声音设置。我将其移至 viewDidLoad() 并对其进行了修复。
【问题讨论】:
-
你在哪里称呼这个
soundButton() -
看起来 soundButton() 每次打开声音设置时都会被调用,所以当你第一次打开声音设置时它工作正常,但当你再次打开它时,它会向 soundView 添加新的声音按钮跨度>
-
似乎每次显示系统声音视图时都会创建声音按钮。
-
向我们展示切换方法以及调用 soundButton() 的位置? @anbu 的问题很好。
-
@Anbu,就是这样。我在拼图启动时隐藏了 UIView 上的按钮。当用户按下“声音设置”图标时,声音设置 UIView 被取消隐藏。我有这个功能上的按钮来取消隐藏声音设置。我将其移至 viewDidLoad() 并对其进行了修复。请把它作为答案,我会接受的。