美文网首页
一个界面有 scrollerView 向左滑动不能 pop 的解

一个界面有 scrollerView 向左滑动不能 pop 的解

作者: 学而不思则罔思而不学则殆 | 来源:发表于2017-04-20 14:57 被阅读26次

    今天有个小故事

    • 今天看到一篇博客,也想到之前写的东西,与其有相近之处也是没有注意和在当时去解决的东西,就是一个scrollerview,上面有很多页面,滑动到最左侧时没有侧拉返回的功能,只有点击左上角返回按钮才能返回,这是因为scrollerview吸收了系统的侧拉手势,使手势不能传递下去,这个问题以前我也没有在意,在看到一篇博客的时候,才想到来优化这个问题.
      首先在viewDidLoad中加入这句话.
    [self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];
    

    故事还没有结束

    • 加上这句话后是可以在scrollerview上面侧拉返回了,但是不管当前页面是不是最左边都可以侧拉返回,需求是在最左侧的时候才可以侧拉返回,不是最左侧时就正常滑动.在滑动结束的的时候再设置一下.
    /** 滑动结束后调用 */
    - (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
    {
            if (scrollView.contentOffset.x <= 0) {
    //滑动结束后如果scrollview是滑动了最左侧的话那么就让它可以侧拉返回
     self.navigationController.interactivePopGestureRecognizer.enabled = YES;
            }else
            {
    //否则就不能侧拉返回
           self.navigationController.interactivePopGestureRecognizer.enabled = NO;
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:一个界面有 scrollerView 向左滑动不能 pop 的解

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