我有一个UIView
parentView
,它实现了UITapGuestureRecognizer
并在点击时会执行某些操作。 parentView
有一个称为childView
的子视图,该子视图也实现了UITapGuestureRecognizer
并在点按时执行某些操作。
[在某些情况下,我必须在动画中关闭childViews
UITapGestureRecognizer
一会儿,并且我注意到当关闭它并点击childView
时,点击被parentView
截获。 。另外,我在该视图的顶部附加了一个工具栏,该工具栏未附加任何手势识别器,并且触摸了父视图(按钮几乎无法使用)。我想知道是否可以在不参考父母UITapGestureRecognizer的情况下禁用此功能?
我尝试使用exclusiveTouches
的UIView
属性设置为yes,但它不起作用。任何建议,将不胜感激。
在父手势识别器中,实现UIGestureRecognizerDelegate
,并实现以下方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]])
{
return NO;
}
else
{
return YES;
}
}
将ClassThatYouWantTouchesBlocked
替换为您希望忽略其触摸的类。
如果永不关闭 ChildView的点击手势识别器怎么办?如果它正在动画化孩子的轻击手势方法返回的内容,则不执行任何操作。
如果它是imageView,则可能会使用isAnimating属性。
向手势儿童添加手势识别器。
self.blockerView.addGestureRecognizer(UITapGestureRecognizer())