一个界面有 scrollerView 向左滑动不能 pop 的解
2017-04-20 本文已影响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;
}
}
}