2014-02-21 68 views
0

我有一个关于手势识别器的问题。在我看来,我有两个手势识别器,一个添加到背景超级视图中以滑动以更改背景颜色,另一个添加到可拖动的子视图。拖动手势识别器干扰滑动手势识别器

问题是拖动手势受到滑动干扰。当我拖动视图时,在某些情况下,拖动操作将被识别为轻扫并触发滑动操作。我不想要这个,我只是想在完成这个拖动操作后才能识别刷卡。当我快速拖动子视图时,这种情况更常见。每次拖动时,都会触发滑动操作。

回答

0

您需要设置较小的UIGestureRecognizerrequireGestureRecognizerToFail:并通过您想要对其重要的识别器。

UIView *subview = .... 
[self addSubview:subview]; 

[self.gestureRecognizer requireGestureRecognizerToFail:subview.gestureRecognizer]; 
+0

我觉得这是一个好方法,应该工作,但是我用你的方法,并发现轻扫手势,这是指你的self.gestureRecognizer不能识别刷卡的。 – Jindulys

+0

这听起来像你的子视图消耗屏幕上的所有手势事件。您可能必须为您的子视图gesturerecognizer设置委托,并覆盖委派功能以设置识别器应识别事件的时间。 – Putz1103

+0

很酷,我使用这种方法,将视图控制器设置为滑动gestureRecognizer委托,并为拖动手势识别器添加通知,当拖动完成时,我发布通知,将标记布尔设置为YES,然后滑动手势识别器的委托方法可以删除该块。你如何看待这个?很酷的解决方案,谢谢 – Jindulys