一个界面有 scrollerView 向左滑动不能 pop 的解决方法.

今天有个小故事

  • 今天看到一篇博客,也想到之前写的东西,与其有相近之处也是没有注意和在当时去解决的东西,就是一个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 的解决方法.)