一个 ScrollView 有一些 SubViews....
ScrollView 包含其预定义的手势(Pan)和我的自定义手势(Pan)以及同时识别它......
SubViews 还包含自定义 Pan Gesture......
一切正常很好,除了子视图上的平移手势...
当我在子视图上平移时,它的超级视图也会触摸并处理我不想要的东西...
当子视图上进行平移时,超级视图不应该识别它们.. .
我如何阻止将我的 SubView 手势传递给它的 SuperView?
问问题
6193 次
2 回答
9
要阻止superview响应手势,当触摸点下有subview时,可以这样做:
实现如下 UIGestureDelegate 方法
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
作为
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return (touch.view == superView);
}
并将此委托设置为分配给 superView 的手势识别器。
我希望这应该做需要的。
于 2013-03-16T10:10:55.740 回答
0
基本上,当您单击 subview 时,无法识别 superview 手势,因为您的 superview 与 subview 重叠。
在 .h 中添加委托并将其提供给 tapGestures 并给出这样的条件
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if([gestureRecognizer.view isKindOfClass:[superView class]])
return NO;
else
return YES;
}
于 2013-03-16T10:04:39.213 回答