28、iOS开发中的手势识别器与触摸事件处理

iOS开发中的手势识别器与触摸事件处理

1. 视图的移动与旋转效果

在iOS开发中,通过特定的代码可以实现视图在拖动时既移动又旋转的效果,就像用一根手指在桌子上拖动盘子一样。在处理拖动事件时,我们可以添加行为到动态动画器,进一步限制视图在拖动时的操作。例如,实现一个只能垂直移动和放下,但不能水平移动的视图。

2. 手势识别器冲突及解决方法
2.1 手势识别器冲突的产生

一个视图可以关联多个手势识别器,当视图被触摸时,不仅其自身的手势识别器,还有视图层次结构中更上层视图的手势识别器都会同时参与。这就可能导致多个手势识别器之间产生冲突,每个识别器都试图将当前的多点触摸序列识别为自己的合适手势。

2.2 冲突解决规则

默认情况下,一旦一个手势识别器成功识别出其手势,与该触摸相关的其他手势识别器将被强制进入 .failed 状态,相关触摸也不再发送给它们。也就是说,在一群手势识别器中,第一个识别出手势的识别器将拥有该手势及其触摸。

例如,我们可以为一个视图同时添加单点击 UITapGestureRecognizer 和拖动 UIPanGestureRecognizer ,它们可以正常工作:

let t = UITapGestureRecognizer(target:self, action:#selector(singleTap))
self.v.addGestureRecognizer(t)
let p = UIPanGestu
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值