【问题标题】:May I know what exactly requireGestureRecognizerToFail will do?我可以知道 requireGestureRecognizerToFail 到底会做什么吗?
【发布时间】:2014-03-22 14:08:45
【问题描述】:

谁能告诉我下面的代码行到底是做什么的?我已经参考了Apples 文档,但没有得到确切的信息,

[scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture];

【问题讨论】:

    标签: ios iphone objective-c uiscrollview uigesturerecognizer


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      而且只有swipeRightGesture没有过渡到上面的RecognizerStates,panGestureRecognizer有可能响应,过渡到UIGestureRecognizerStateBegan,调用panGestureRecognizer委托方法。

      【讨论】:

        【解决方案3】:

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

        According to the docsrequireGestureRecognizerToFail:

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

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

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

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

        [scrollview.panGestureRecognizer requireGestureRecognizerToFail:swipeRightGesture];
        

        当用户做出滑动手势时,只有当滑动手势正常进行时,平移手势才会失败。但是,如果该滑动手势失败,则会继续进行平移手势。

        【讨论】:

          猜你喜欢
          • 2013-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-15
          • 2011-07-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-05-03
          相关资源
          最近更新 更多