同时点击手势深度优化处理 setExclusiveTouch

本文探讨了在iOS中如何处理多个点击手势共存的问题,特别是当手势响应事件导致页面重叠或重复Push时。介绍了`setExclusiveTouch`属性,用于设置UIView接收手势的互斥性,防止同时响应。同时,文章提到了在iOS 8.0~iOS8.2版本中全局设置可能引发崩溃的问题,并提供了两种解决方案:单独设置或使用分类扩展。最后,建议在特定场景下使用方案一,而全局设置则需要进一步验证其在问题版本的效果。
摘要由CSDN通过智能技术生成

前言

iOS 中对手势响应事件的定义很丰富(参考iOS七种手势),最常用的是点击手势,若不做一些配置处理,你可能会遇到很尴尬的问题,如一个页面两个弹窗重叠,一个页面被Push了多次等。让我们一起探讨下,怎么避开这些坑。“同时”:物理世界中,事件的发生,并不存在绝对上的同时。

注意:我在下文描述时,用的是点击手势和响应区域,其实,UIView的子类都可以添加点击手势和响应事件,与点击UIbutton并响应事件本质上是相同的。

先抛出一些小结论:

1、点击事件之间是可以“同时”共存,并能分别“同时”响应的。(同时点击两个响应区域分别响应)

2、线程被阻塞时,点击手势也是可以缓存的,并在线程通畅后统一响应。(单个响应区域的重复点击并重复响应)。

发现问题

1、当一个页面中存在两个以上可点击的响应区域时,基本都存在“同时”点击,分别“同时”响应的问题,尤其是响应事件分别为弹出窗口或

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值