[英]Disable receiving touches from parent view on subview
我有一个UIView
parentView
,它实现了一个UITapGuestureRecognizer
并在点击时做一些事情。 parentView
有一个名为childView
的子视图,它也实现了一个UITapGuestureRecognizer
并在点击时做一些事情。
有一个实例,当我必须在动画过程中childViews
关闭childViews
UITapGestureRecognizer
时,我注意到当它关闭并点击childView
,点击被parentView
拦截。 此外,我在此视图的顶部附加了一个工具栏,该工具栏没有附加任何手势识别器,并且它的触摸通过 parentView(按钮几乎不起作用)。 我想知道是否可以在不参考父母 UITapGestureRecognizer 的情况下禁用它?
我试过使用UIView
的exclusiveTouches
属性设置为 yes ,但它不起作用。 任何建议,将不胜感激。
在父手势识别器中,实现UIGestureRecognizerDelegate
,并实现以下方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if ([touch.view isKindOfClass:[ClassThatYouWantTouchesBlocked class]])
{
return NO;
}
else
{
return YES;
}
}
将ClassThatYouWantTouchesBlocked
替换为您希望其触摸被忽略的类。
如果从不关闭ChildView 的点击手势识别器怎么办? 如果它是从孩子的点击手势方法返回动画而不做任何事情。
如果它比isAnimating属性可能会派上使用ImageView的。
将手势识别器添加到阻止子项。
self.blockerView.addGestureRecognizer(UITapGestureRecognizer())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.