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
超级会员免费看
订阅专栏 解锁全文
49

被折叠的 条评论
为什么被折叠?



