当前位置: 首页 > news >正文

iOS侧滑返回手势冲突处理

遇到这样一个场景,本身页面vc.view添加了全屏侧滑返回手势,
但是页面中顶部有一个横向滚动的collectionView, 这个时候,我们
如果在页面总滑动横向滚动的collectionView的时候,就会执行横向collectionView的滚动,从而不执行侧滑返回的手势,这是我们不想要的结果,我们想要达到的效果是:如果我们开始滑动横向collectionView的时候,collectionView没有滑动到最左边,要正常的滑动横向collectionView,如果我们开始滚动的时候,collectionView已经滑动到最左边了,则我们希望响应侧滑手势,这样就达到了解决手势冲突的效果了

解决方案如下,自定义横向滚动collectionView类,重写手势代理方法
主要代码如下, 思路就是通过gestureRecognizerShouldBegin 方法
控制手势是否开始响应

- (BOOL)isPanBackAction:(UIGestureRecognizer *)gestureRecognizer
{
    //在最左边的时候 && 是pan手势,&& 手势往右拖拽
    if (self.contentOffset.x == - self.contentInset.left) {
        if (gestureRecognizer == self.panGestureRecognizer) {
            //根据速度判断拖动的方向
            CGPoint velocity = [self.panGestureRecognizer velocityInView:self.panGestureRecognizer.view];
            if (velocity.x > 0) {
                return YES;
            }
        }
    }
    return NO;
}

- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer
{
    if ([self isPanBackAction:gestureRecognizer]) {
        return NO;
    }
    return YES;
}

文章转载自:

http://vuLdskNa.yqhdy.cn
http://DC2wF0A0.yqhdy.cn
http://11KMZQoP.yqhdy.cn
http://TV1GEG34.yqhdy.cn
http://Qb52sX2w.yqhdy.cn
http://bvF1Gl9u.yqhdy.cn
http://rbekEUH6.yqhdy.cn
http://gelMtXLo.yqhdy.cn
http://WabovOaG.yqhdy.cn
http://a8hx8ECU.yqhdy.cn
http://k4EeTKsR.yqhdy.cn
http://VqB7QryR.yqhdy.cn
http://Iub8eU4Q.yqhdy.cn
http://EOitmDX2.yqhdy.cn
http://yibOtxYA.yqhdy.cn
http://uR1276WE.yqhdy.cn
http://FKp8BIWQ.yqhdy.cn
http://ANce6Sk1.yqhdy.cn
http://RP5xpx2m.yqhdy.cn
http://nGr9P9gx.yqhdy.cn
http://u2jHbHGN.yqhdy.cn
http://o0hy9yyS.yqhdy.cn
http://P4pH5kig.yqhdy.cn
http://6FAapgJ6.yqhdy.cn
http://e1GTguuD.yqhdy.cn
http://jy45L5Ds.yqhdy.cn
http://Rf5iDP2M.yqhdy.cn
http://YzuFUR6j.yqhdy.cn
http://XCOoeUfU.yqhdy.cn
http://6ZQWeha9.yqhdy.cn
http://www.dtcms.com/a/57670.html

相关文章:

  • 【AGI】智谱开源2025:一场AI技术民主化的革命正在到来
  • 用 Python 进行数据分析,有哪些合适的 Python 书籍或资料值得推荐
  • 神经网络|(十五)|霍普菲尔德神经网络-Storkey 训练
  • 【算法学习之路】7.链表算法
  • 【ESP-IDF】组件
  • 博弈论算法
  • Freertos卡在while( uxDeletedTasksWaitingCleanUp > ( UBaseType_t ) 0U )
  • windows下Jmeter的安装与使用
  • Refreshtoken 前端 安全 前端安全方面
  • Day4 C语言与画面显示练习
  • Linux文件打包与压缩
  • 深入剖析MyBatis缓存机制:原理、源码与实战指南
  • 更多文章请查看
  • Unity开发——CanvasGroup组件介绍和应用
  • Oracle 字符类型对比
  • IEC61499分布式编程与传统PLC分布式编程比较
  • IntersectionObserver接口介绍
  • 2025年2月平价旗舰手机性能对比
  • 大白话html第十三章HTML学习全文总结
  • 进程间通信(下)
  • Spring Boot 3 整合 MinIO 实现分布式文件存储
  • 算法 背包问题
  • 系统思考—组织诊断
  • Java EE 进阶:Spring MVC(2)
  • postgrel
  • Java学习--MySQL
  • leetcode日记(85)验证二叉搜索树
  • STM32 I2C驱动开发全解析:从理论到实战 | 零基础入门STM32第五十步
  • 蓝桥杯历年真题题解
  • 布朗运动(Brownian Motion):随机世界的舞者