TouchUpOutside无法正常工作

时间:2016-09-09 12:46:06

标签: ios swift uibutton

我用一些自定义UIButton创建了一个menue。我只更改了drawRect函数:

for button in buttons {
            button.addTarget(self, action: #selector(showLabel), forControlEvents: .TouchDown)
            button.addTarget(self, action: #selector(buttonAction), forControlEvents: .TouchUpInside)
            button.addTarget(self, action: #selector(labelDelete), forControlEvents: .TouchUpOutside)
            button.addTarget(self, action: #selector(labelDelete), forControlEvents: .TouchCancel)
        }

我有三个功能来处理touchevents:

func labelDelete(sender: HexagonButton!) {
        label?.alpha = 0
        label?.hidden = true
    }
    func showLabel(sender: HexagonButton!) {
        label!.frame = CGRect(x: self.view.frame.width/2 - 150 + lastContentOffset, y: 5, width: 300, height: 30)
        label!.text = sender.labelName
        self.label?.hidden = false
        UIView.animateWithDuration(1.0, animations:{
            self.label?.alpha = 1
        })

    }
    func buttonAction(sender: HexagonButton!) {
        label?.alpha = 0
        label?.hidden = true
        if sender.viewControllerName != "nil" {
            let storyboard = UIStoryboard(name: "Main", bundle: nil)
            let vc = storyboard.instantiateViewControllerWithIdentifier(sender.viewControllerName)
            self.navigationController?.pushViewController(vc, animated: true)
        }

    }

如果我触摸一个按钮,标签就会显示出来。但是,如果我将手指从按钮移开并离开显示器,它仍然会调用.TouchUpInside函数。只有当我的手指离按钮很远时,它才能正常工作。这有什么问题?

请问!

0 个答案:

没有答案