第12章介绍了如何通过覆盖UIResponder的事件方法来直接处理触摸事件。编写iOS应用时,可能需要识别某组触摸事件是否符合特定的手势(gesture)规则,例如“张开或合拢两个手指”(pinch)或滑动(swipe)。对这类常见的手势,可以用特定的UIGestureRecognizer对象来识别,而不用自己编写相关的代码。
UIGestureRecognizer对象会截取本应由视图处理的触摸事件。当某个UIGestureRecognizer对象识别出特定的手势后,就会向指定的对象发送指定的消息。iOS SDK默认提供若干种UIGestureRecognizer对象。本章将更新TouchTracker,借助由iOS SDK提供的三种UIGestureRecognizer对象,用户可以选择、移动并删除线条(见图13-1)。此外,本章后半部分还会介绍另一个很有用的Objective-C类:UIMenuController。
图13-1 完成后的TouchTracker