UIScrollView,点击、滑动翻页事件的区分

本文介绍了如何在UIScrollView中区分点击和滑动事件。通过理解UIScrollView的touch事件处理原理,150ms内未移动则传递事件,否则开始滚动。解决方法是在内部视图上检测触摸时间,判断是否为单击事件,实现点击跳转或隐藏/显示状态栏等操作,同时保持正常滑动功能。
摘要由CSDN通过智能技术生成

 

      最近看到有人问这个问题:在UIScrollView上添加了一个View,View上面有图片等元素,需要对单击和滑动事件进行区分。这样的问题有以下几个经常会用到的地方:

     (1)点击UIScrollView上的图片,跳转到其他页面;同时不影响UIScrollView的滑动操作。

     (2)在阅读浏览类产品会经常用到,点击屏幕的中间区域,隐藏/显示状态栏或导航条;同时不影响UIScrollView的滑动翻页操作。

 

       有解决方法事在点击区域添加一个透明的Button,但个人感觉比较复杂,而且效果并不好。以下是我个人的解决方法:

 

       首先了解下UIScrollView对于touch事件的接收处理原理:UIScrollView重载hitTest 方法,并总会返回itself 。所以所有的touch 事件都会进入到它自己里面去了。内部的touch事件检测到这个事件是不是和自己相关的,或者处理或者除递给内部的view。

       为了检测touch是处理还是传递,UIScrollView当touc

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值