禁用从子视图的父视图接收触摸

Ser*_*nce 15 iphone cocoa-touch objective-c uigesturerecognizer ios

我有一个UIView parentView实现a UITapGuestureRecognizer并在点击时执行某些操作.parentView有一个子视图调用childView,它也实现了一个UITapGuestureRecognizer并在点击时执行某些操作.

有一个例子,当我不得不关闭childViews UITapGestureRecognizer动画片中的一小段时间时,我注意到当它关闭时我点击childView,水龙头被拦截了parentView.此外,我有一个工具栏连接到这个视图的顶部,没有附加任何手势识别器,它的触摸通过parentView(按钮几乎不起作用).我想知道是否有可能在没有引用父母UITapGestureRecognizer的情况下禁用它?

我尝试使用set 的exclusiveTouches属性UIView为yes,但它不起作用.任何建议,将不胜感激.

Ser*_*nce 25

在父手势识别器中,实现UIGestureRecognizerDelegate,并实现以下方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{
    if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]]) 
    {
        return NO;
    }
    else 
    {
        return YES; 
    }
}
Run Code Online (Sandbox Code Playgroud)

替换ClassThatYouWantTouchesBlocked为您希望其触摸的类被忽略.