UIButton Touch Down未在Swift中注册



我已经在界面生成器(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链接。

最新更新