我有一个UIView parentView,它实现UITapGuestureRecognizer并在点击时执行某些操作。 parentView有一个称为childView的 subview ,它也实现了UITapGuestureRecognizer并在点击时执行某些操作。

有一个实例,我必须在动画过程中关闭childViews UITapGestureRecognizer一会儿,然后我注意到当关闭它并点击childView时,该点击被parentView拦截了。另外,我在该 View 的顶部附加了一个工具栏,该工具栏未附加任何手势识别器,并且触摸了父 View (按钮几乎无法使用)。我想知道是否可以在不引用 parent UITapGestureRecognizer的情况下禁用此功能?

我尝试使用将exclusiveTouchesUIView属性设置为yes,但它不起作用。任何建议,将不胜感激。

最佳答案

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

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

ClassThatYouWantTouchesBlocked替换为您希望忽略其样式的类。

10-08 06:11