
88
|
第
3
章
移动
手指从一个地方移动到另一个地方(在一个触摸过程中,移动方法会被调用多
次)。
结束
手指从屏幕上离开。
取消
触摸由于某种原因被中断,比如被某个手势识别器拦截(本章
3.2
节)。
当手指一放到屏幕上,
iOS
首先判断该由哪个视图负责处理这个触摸。首先判断屏
幕被触摸的位置,以及该位置所处的视图;然后判断这个视图或者其子视图是否能
处理这个触摸。也就是检查这个视图(或者其子视图)是否实现了
touchesBegan
、
touchesMoved
、
touchesEnded
或者
touchesCancelled
方法。
一旦判定触摸属于某个视图,则每当触摸状态发生改变时,这些方法就会被调用(比
如两指同时在屏幕上滑动),每个方法都有一个包含每个触摸及其状态的
Set
集合
参数。
3.2
处理轻触手势
问题
当用户轻触视图时,我们如何检测到这个手势?
解决方案
轻触是指用户以单指触碰屏幕,然后在原地抬起手指。可以使用一个手势识别器
UIGestureRecognizer
(其实是它的子类
UITapGestureRecognizer
)来识别轻触手势:
override func viewDidLoad() {
super.viewDidLoad()
let tap = UITapGestureRecognizer(target: self,
action: #selector(ViewController.tap(tapRecognizer:)))