2014-02-21 67 views

回答

13

2

一个示例[_singleTap requireGestureRecognizerToFail:_doubleTap],当您需要单击手势时,需要双击手势失败。双击包括两个单击,因此如果没有requireGestureRecognizerToFail单击手势委托方法可能会调用两次。

所以在这里,滑动手势可能会触发平移手势,然后在实际滑动时调用panGestureRecognizer委托方法。

如果添加[panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture],一旦swipeRightGesture过渡到UIGestureRecognizerStateRecognized或UIGestureRecognizerStateBegan,panGestureRecognizer过渡到UIGestureRecognizerStateFailed马上。

只有swipeRightGesture没有转换到上面的RecognizerStates,panGestureRecognizer才有可能响应,转换到UIGestureRecognizerStateBegan并调用panGestureRecognizer委托方法。

2

接受的答案是只有部分正确的...

According to the docsrequireGestureRecognizerToFail:

状态,接收器转换到依赖于会发生什么 与otherGestureRecognizer [第二引用手势识别]:

  • 如果otherGestureRecognizer转换为UIGestureRecognizerStateFailed,则接收er转换到正常的 下一个状态。

  • 如果otherGestureRecognizer转变到UIGestureRecognizerStateRecognized或UIGestureRecognizerStateBegan, 接收机转换到UIGestureRecognizerStateFailed。

这意味着,在下面的代码:

[scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture]; 

当用户作出一个滑动手势时,平移姿势只会失败如果扫动手势正常进行。如果该滑动手势失败,则平移手势将继续进行。

相关问题