触摸内部按钮无法正常工作

Touch up inside button not working properly

我正在 UI 开发一款游戏。在标题屏幕上,我在屏幕上有各种按钮。一个按钮是允许静音的切换按钮。我的 selected 图像是静音图像。 默认图像是完整的声音图像。我通过声音按钮连接到视图控制器。连接是一种动作类型,当在内部触摸按钮时发生。按钮的代码是:

@IBAction func soundButton(sender: UIButton) {
     sender.selected = sender.selected! 
}

首次加载应用程序时,会显示标题屏幕。在屏幕上,声音按钮显示声音打开。我可以单击并按住按钮,图像不会改变。然后当我释放时,图像会改变。这就像我想要的那样工作,它显示静音图像,但是当我再次单击并按住按钮时,启用声音。我一触摸按钮,图像就会改变,NOT 当我像第一次那样触摸它后松开。这不是一个大错误,但我仍然想知道为什么会发生这种情况。并在此先感谢。

奇怪的是没有函数名。但是.. 我在没有任何其他代码的情况下对此进行了测试,并且它按您预期的那样工作 - 在注册 touch UP 之前图像不会改变。

就是说 - 按下按钮时会出现视觉变化。不过,它与 selected 属性 无关。它是您可以定义的图像集的一部分。 UIControlState.Highlighted

我是这样测试的: viewDidLoad:

thebutton.setImage(UIImage(named: "icon_dark"), forState: UIControlState.Selected)
thebutton.setImage(UIImage(named: "icon_light"), forState: UIControlState.Normal)

我对按钮的操作(在内部触摸时):

@IBAction func tap(sender: AnyObject) {
    thebutton.selected = !thebutton.selected
}