美文网首页iOS点滴iOS开发好文
解决侧滑返回与ScrollView滚动冲突的问题

解决侧滑返回与ScrollView滚动冲突的问题

作者: overmindgc | 来源:发表于2015-09-16 10:49 被阅读2254次

当在一个viewController中添加了scrollView或者tableView的时候,贴边侧滑返回的时候会首先触发滚动而失效,要解决这个问题,需要通过requireGestureRecognizerToFail()方法来解决,代码如下:

NSArray *gestureArray = self.navigationController.view.gestureRecognizers;
//当是侧滑手势的时候设置scrollview需要此手势失效才生效即可
for (UIGestureRecognizer *gesture in gestureArray) {
    if ([gesture isKindOfClass:[UIScreenEdgePanGestureRecognizer class]]) {
        [self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:gesture];
    }
}

使用方法:在viewDidLoad()里边添加此段代码即可

相关文章

网友评论

  • Minoz_min:我的A页面有一个UIScrollView,其中一个子页面push到B页面,我在A页面的viewDidLoad里面写了你说得那个方法,从B页面手势返回到A页面,这个方法不管用?不知道是不是我用错了?
    overmindgc:哪一页有可能发生冲突的UIScrollView就加在哪里,重点是拿到冲突的两个手势,调用requireGestureRecognizerToFail失效依赖
  • mukekeheart:这个挺实用的,但是有个小问题就是本来侧滑返回应该是最左边的页面才有效的,但是这个方法对所有的页面都有效,要修改一下该改怎么做呢?
    overmindgc:@mukekeheart 不太好办,你可以参考下这个篇文章http://www.jianshu.com/p/040772693872
    mukekeheart:@overmindgc 我的意思是侧滑我想只在第一页的时候 右侧划 返回上一级,其他页面左右滑动则只是页面切换
    overmindgc:@mukekeheart 没明白你的意思,这个只是在开启侧滑手势并且有滚动视图的时候防冲突用得着
  • 喵喵炭:Mark!:v:
  • JornyQi:不管用
    overmindgc:我试了还是管用的,你看看scrollView是不是冲突的那个,这段放到view初始化完成以后呢
  • 4182e44623a6:实测可用
  • 系统盘:这就有点牛逼了

本文标题:解决侧滑返回与ScrollView滚动冲突的问题

本文链接:https://www.haomeiwen.com/subject/uxhbcttx.html