IOS开发: 全屏右划pop过程中, 返回手势与scrollView手势冲突的解决方法

注意: 这里主要是对于scrollView和返回手势的冲突处理

  • 效果图如下:
效果图
  • 全屏右滑pop返回请看 <a href="http://www.jianshu.com/p/e183689ae80a">iOS开发: 导航控制器 - 全屏右滑pop返回效果</a>
具体步骤
  • 第一步: 定义LTScrollView类, 继承自UIScrollView
  • 第二部: 重写scrollView的<a>-(BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer</a>方法即可
  • 具体代码如下
#import "LTScrollView.h"

@interface LTScrollView () <UIGestureRecognizerDelegate>

@end

@implementation LTScrollView

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    // 首先判断otherGestureRecognizer是不是系统pop手势
    if ([otherGestureRecognizer.view isKindOfClass:NSClassFromString(@"UILayoutContainerView")]) {
        // 再判断系统手势的state是began还是fail,同时判断scrollView的位置是不是正好在最左边
        if (otherGestureRecognizer.state == UIGestureRecognizerStateBegan && self.contentOffset.x == 0) {
            return YES;
        }
    }
    
    return NO;
}

@end

  • 最后, 只需要将使用的UIScollView类型换成LTScrollView类型即可
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 事情起因是新项目,产品要做杂志翻页风格,也不不显示导航、标签栏、返回键,返回由下滑手势出发,上滑会从底部显示足迹,...
    vincent涵阅读 6,355评论 6 9
  • ios7开始 苹果增加了页面 右滑返回的效果;具体的是以UINavigationController为容器的Vie...
    Q6尐漒阅读 1,372评论 0 0
  • 前言:ios7开始 苹果增加了页面 右滑返回的效果;具体的是以UINavigationController为容器的...
    iPhone阅读 3,819评论 2 3
  • 郭章贤:短练无发,憨憨傻笑,对待班里女生那是一个特别的相当的好,不过对咱家的兔的特别的好啦,而班里女生也给出相当给...
    哈哈梨阅读 1,168评论 0 2
  • 今天学习了两种新的呼吸方法:aum呼号法,净化呼吸法。 经过呼吸调节身心,接下来才是体式。所谓体式,就来到我们普遍...
    晓天狼星阅读 158评论 0 0

友情链接更多精彩内容