我可以知道究竟需要什么样的认可才能做到这一点?

时间:2014-02-21 07:29:17

标签: ios iphone objective-c uiscrollview uigesturerecognizer

任何人都可以告诉我下面的代码行究竟是做什么的吗?我已经提到Apples文档,但没有得到关于此的确切图片,

[scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture];

3 个答案:

答案 0 :(得分:13)

当用户做出正确的滑动手势时,平移手势将失败(忽略)。

答案 1 :(得分:2)

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

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

如果添加[panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture],一旦swipeRightGesture转换为UIGestureRecognizerStateRecognized或UIGestureRecognizerStateBegan,panGestureRecognizer会立即转换为UIGestureRecognizerStateFailed。

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

答案 2 :(得分:2)

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

requireGestureRecognizerToFail:

According to the docs

  

接收器转换到的状态取决于发生的情况   与otherGestureRecognizer [第二个引用的手势识别器]:

     
      
  • 如果otherGestureRecognizer转换为UIGestureRecognizerStateFailed,接收器将转换为正常状态   下一个州。

  •   
  • 如果otherGestureRecognizer转换为UIGestureRecognizerStateRecognized或UIGestureRecognizerStateBegan,   接收器转换为UIGestureRecognizerStateFailed。

  •   

这意味着在以下代码中:

[scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture];

当用户进行滑动手势时,如果滑动手势正常进行,则平移手势将仅失败。但是,如果滑动手势失败,则平移手势将继续进行。