美文网首页iOS开发(OC)
解决 UICollectionView 横向滑动时,系统侧滑返回

解决 UICollectionView 横向滑动时,系统侧滑返回

作者: 小码农_gjw | 来源:发表于2018-10-15 16:49 被阅读4次
当我们创建一个横向滑动的collectionView的时候,会发现系统的侧滑返回功能失效了。下面就来分析一下这个问题产生的原因以及解决方案
首先解释下失效的原因

由于UICollectionView继承自UIScrollView,UIScrollView内部有个panGestureRecognizer的手势属性,当我们滑动scrollView的时候,其实就是panGestureRecognizer在起作用,所以当我们的滑动手势在scrollView上时,就不会调用系统的侧滑返回手势

解决方案

要想解决侧滑返回失效的问题,我们只需要在合适的时候,将scrollView内部的panGestureRecognizer手势关闭即可

解决步骤

// 1.设置代理
self.panGestureRecognizer.delegate = self;

// 2.实现方案
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer {
    
    // 开启侧滑返回功能
    
    // 是否为平移手势
    if ([gestureRecognizer isKindOfClass:[UIPanGestureRecognizer class]]) {
        // 获取平移方向
        CGPoint translation = [(UIPanGestureRecognizer *)gestureRecognizer translationInView:gestureRecognizer.view];
        // 向右滑动 && scrollView滑动到最左侧
        if (translation.x >= 0 && self.contentOffset.x <= 0) {
            return NO;
        }
        
    }
    
    return YES;
}


相关文章

网友评论

    本文标题:解决 UICollectionView 横向滑动时,系统侧滑返回

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