使用全局手势返回,解决返回手势与控制器切换手势的冲突

袁峥老师的YZDisplayViewController“快速集成App中顶部标题滚动条”,可以快速简单地实现类似今日头条的手势左右切换控制器的效果。

但这种左右切换的手势与UINavigationController自带的返回手势冲突,为了解决这个冲突,我引入了FDFullscreenPopGesture这个拓展。

引入后,基本上无需其他操作,就可以使所有的控制器支持全屏幕手势返回,实现新浪微博客户端一样的效果。

不过要解决与YZDisplayViewController的冲突,还需要新建一个UICollectionView的子类,并重写这个子类的方法:

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
    if (self.contentOffset.x <= 0) {
        if ([otherGestureRecognizer.delegate isKindOfClass:NSClassFromString(@"_FDFullscreenPopGestureRecognizerDelegate")]) {
            return YES;
        }
    }
    return NO;
}

发表评论