块传递手势上海华
问题描述:
滚动型是有一些子视图....
滚动型包含其预定义手势(Pan)和我的自定义手势(潘),以及同时确认它...
子视图中还含有自定义平移手势......
一切都工作正常,除了在SubViews上的平移手势...
当我在做SubView的时候,它的SuperView也得到了接触和处理,我不想...
当在子视图上进行平移时,superView不应该识别它们...
如何阻止传递我的子视图手势到它的SuperView?块传递手势上海华
答
基本上,当你点击子视图,然后超视图手势无法识别,因为你的超视图与子视图重叠。在.H
添加委托,并把它送给tapGestures和给予这样
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
if([gestureRecognizer.view isKindOfClass:[superView class]])
return NO;
else
return YES;
}
答
条件要从响应手势,当有触摸点下子视图可为已完成方框上海华如下:
实施UIGestureDelegate
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch;
下列方法
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
return (touch.view == superView);
}
并将此代理设置为指派给superView的gestureRecognizer。
我希望这应该做的需要。
+1
对我来说,我不得不在子视图中勾选“启用用户交互”,以使其工作,但它确实如此。 – Dan 2013-12-21 16:05:10
是的,这是假设发生的......但在这种情况下,它不会发生......当我删除超视图的同时手势识别,然后它按预期工作.....任何想法可能是什么? – bhawesh 2013-03-16 10:08:45
因为你有条件并检查来自superview的那一个然后什么都不做。 – Balu 2013-03-16 10:12:32
一旦检查我的更新答案。 – Balu 2013-03-16 10:27:27