UITapGestureRecognizer没有在UIView上工作

时间:2016-08-04 09:57:06

标签: ios swift uiview gesture uitapgesturerecognizer

我正在使用带有UITapGestureRecognizer的UIView。 另一方面,我在ViewController的容器视图上有一个tap识别器,

现在,当我点击我的内部视图时,它会调用处理程序,

但是当我点击它的40个高点时,它不起作用,容器的敲击识别器会发射!!!,实际上我确定它在UIView中,我确定当我改变它的背景时不同的颜色,另一方面,这个观点也没有任何其他观点!

这真烦人,我测试了一切,隐藏了所有视图,禁用了其他识别器等等!这不是我第一次使用这个U I TAP RECOGNIZER:///

    view.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(viewController.dismissKeyboard(_:))))
    viewWrite.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(viewController.viewPressed(_:))))

EDIT ::

我发现即使我在UITextView上触摸,主容器的点击事件也会加载!但其他观点,不! ::

HERE!!

1 个答案:

答案 0 :(得分:1)

您可以尝试实施 UIGestureRecognizerDelegate

例如

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    if (gestureRecognizer == recoginiser1 && wrongview1) return false
    if (gestureRecognizer == recoginiser2 && wrongview2) return false
    else return true;
}

错误观意味着这样的事情。

func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldReceiveTouch touch: UITouch) -> Bool {
    if (gestureRecognizer == recognizer1){
    let point = touch.locationInView(self.view)
        if CGRectContainsPoint(textView.frame, point) == true {
            return false
        }
    }
    return true
}