iOS 全屏侧滑手势/UIScrollView/UISlider间滑动手势冲突

本文介绍了iOS应用中全屏侧滑手势与UIScrollView、UISlider手势冲突的问题及其解决方法。通过分析事件传递和响应链机制,提出设置delaysContentTouches属性为NO以及自定义UIScrollView类别来解决冲突。同时提供了处理UISlider不在UIScrollView上时的冲突策略,并给出了相关应用场景的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

七夕节福利��

效果预览

一、前期准备

有一个支持全屏侧滑返回的视图控制器ViewController,ViewController.view上有一个UIScrollView,UIScrollView上有UISlider。俺直接在之前的示例Demo上演示,简书地址:iOS 自定义转场动画 ,Github地址 :WSLTransferAnimation

二、问题展示
  • 现象 1UIScrollView当前在第一页即contentOffset.x=0时,左滑不能触发全屏侧滑pop返回的手势

UIScrollView和全屏侧滑pop返回手势冲突示意图

  • 现象2问题1解决后,你会发现拖拽UIScrollView第一页上的UISlider时,向右拖拽时却触发了全屏侧滑pop返回的手势,而UISlider本身的拖拽事件却没有响应;向左拖拽UISlider时,响应的是UIScrollView的拖动事件,而UISlider本身的拖拽事件也没有响应

UISlider与UIScrollView、全屏侧滑pop返回手势冲突示意图

  • 现象3当你长按UISlider超过150ms后直接拖拽,就不存在现象2中UISlider与UIScrollView、全屏侧滑返回的冲突问题了
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值