使用gestureRecognizer时两个手势识别器之间的顺序:shouldRecognizeSimultaneouslyWithGestureRecognizer:

Posted

技术标签:

【中文标题】使用gestureRecognizer时两个手势识别器之间的顺序:shouldRecognizeSimultaneouslyWithGestureRecognizer:【英文标题】:order between two gesture recognizer when using gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 【发布时间】:2012-10-31 15:53:05 【问题描述】:

我有一个UIScrollView,并在其中添加了一个UIPanGestureRecognizer

我想同时使用scrollView.panGestureRecognizer(默认)和我的自定义识别器。

所以我将函数 gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer: 覆盖为 YES,并且我同时调用了 panGestureRecognizer

我的问题是我需要先调用我的自定义识别器,然后再调用默认识别器。

在文档中,我读到:

在默认行为中,多点触控序列中的触摸事件以非确定性顺序从一个手势识别器到另一个手势识别器,直到事件最终传递到视图(如果有的话)。

有没有办法让两个识别器以确定性顺序激活?

【问题讨论】:

【参考方案1】:

您是否尝试过使用:

- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer

您可以在UIScrollView pan 手势识别器上调用它,以确保首先调用您的自定义识别器。

【讨论】:

以上是关于使用gestureRecognizer时两个手势识别器之间的顺序:shouldRecognizeSimultaneouslyWithGestureRecognizer:的主要内容,如果未能解决你的问题,请参考以下文章

手势识别器GestureRecognizer

用Swift GestureRecognizer 的几个注意点

手势识别器 - 新区域

GestureRecognizers

手势详解

第十五篇OC_同一个View实现两个手势响应