我已经在界面生成器(Main.streboard)上创建了一个UIButton。我将两个操作连接到View Controller swift文件,如下所示:
@IBAction func backDownPress(sender: UIButton) {
backButon.backgroundColor = UIColor.blackColor()
}
@IBAction func backNormalPress(sender: UIButton) {
backButon.backgroundColor = UIColor.clearColor()
performSegueWithIdentifier("pushFromRight", sender: self)
}
最上面的动作是向下触球,最下面的动作是向内触球。
然而,一旦我尝试在模拟器或iPhone上运行该应用程序,触摸就不会注册。当我试图在动作中只放一条打印线时,它也没有任何作用。
通过查看我的其余代码,我找不到任何类似于禁用用户交互的东西,所以我不知道为什么这不起作用。
有两种可能的解决方案:
1) @IBAction未连接到按钮。
2) 按钮前面有一些分层的东西(某种视图)
我猜您想在按下时更改按钮的颜色。
1.子类UIButton并实现
override var highlighted: Bool {
get {
return super.highlighted
}
set {
if newValue {
backgroundColor = UIColor.blueColor()
}
else {
backgroundColor = UIColor.clearColor()
}
super.highlighted = newValue
}
}
假设您的IBAction连接正确:检查superview的userInteractionEnabled属性,因为subView的用户交互也依赖于superview。检查此SO链接。