两个滑动手势冲突处理

Posted 程石亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个滑动手势冲突处理相关的知识,希望对你有一定的参考价值。

手势的话,有一个可以解决这个问题的API方法,如果otherGestureRecognizer这个手势没有执行成功的话,才会执行调用这个方法的手势。

- (void)requireGestureRecognizerToFail:(UIGestureRecognizer *)otherGestureRecognizer


- (UIScreenEdgePanGestureRecognizer *)screenEdgePanGestureRecognizer//获取边缘返回手势
{
    UIScreenEdgePanGestureRecognizer *screenEdgePanGestureRecognizer = nil;

    if (self.navigationController.view.gestureRecognizers.count > 0) {
        for (UIGestureRecognizer *recognizer in self.navigationController.view.gestureRecognizers){
            if ([recognizer isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
                screenEdgePanGestureRecognizer = (UIScreenEdgePanGestureRecognizer *)recognizer;
                break;
            }
        }
    }
    return screenEdgePanGestureRecognizer;
}
我们在操作滚动视图的时候的,只要滚动视图的手势能够触发,就不会执行滑动返回的那个手势,并且除了这个滚动视图外,在其他地方对滑动返回没有影响。
[[self screenEdgePanGestureRecognizer] requireGestureRecognizerToFail:self.scrollView.panGestureRecognizer];
 

以上是关于两个滑动手势冲突处理的主要内容,如果未能解决你的问题,请参考以下文章

iOS 捏合手势与滑动手势冲突

iOS多手势冲突问题

解决右滑返回手势和UIScrollView中的手势冲突

UIScrollView嵌套TableView手势冲突问题

iOS-UIScrollView滑动与手势冲突

处理侧滑返回与 ScrollView 手势冲突