我正在使用带有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上触摸,主容器的点击事件也会加载!但其他观点,不! ::
答案 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
}