我有一个UIView
parentView
,它实现UITapGuestureRecognizer
并在点击时执行某些操作。 parentView
有一个称为childView
的 subview ,它也实现了UITapGuestureRecognizer
并在点击时执行某些操作。
有一个实例,我必须在动画过程中关闭childViews
UITapGestureRecognizer
一会儿,然后我注意到当关闭它并点击childView
时,该点击被parentView
拦截了。另外,我在该 View 的顶部附加了一个工具栏,该工具栏未附加任何手势识别器,并且触摸了父 View (按钮几乎无法使用)。我想知道是否可以在不引用 parent UITapGestureRecognizer的情况下禁用此功能?
我尝试使用将exclusiveTouches
的UIView
属性设置为yes,但它不起作用。任何建议,将不胜感激。
最佳答案
在父手势识别器中,实现UIGestureRecognizerDelegate
,并实现以下方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]])
{
return NO;
}
else
{
return YES;
}
}
将
ClassThatYouWantTouchesBlocked
替换为您希望忽略其样式的类。