![126c0db5258d0dc82fa6380effe5688d.png](https://i-blog.csdnimg.cn/blog_migrate/7fafd369c43113b08228a511e1c89e1a.png)
1、原理概述
(1)手势识别器
苹果为了降低开发者在手势事件处理方面的开发难度,定 义了一个抽象类 UIGestureRecognizer 来协助开发者。 UIGestureRecognizer 是具体手势识别器的抽象基类,它 定义了一组可以为所有具体手势识别器配置的常见行为。 它还可以通过设置委托(即实现了 UIGestureRecognizerDelegate 协议的对象),来支持对某些行为进行更细粒 度的定制。
手势识别器必须被添加在一个特定的视图上(比如 UILabel、UIImageView 等控件),即需要通过调用 UIView 类中的 - addGestureRecognizer: 方法进行添加。 手势识别器也是用了 Target-Action 设计模式。当我们为 一个手势识别器添加一个或者多个 Target-Action 后,在 视图上进行触摸操作时,一旦系统识别了该手势,就会向 所有的 Target 对象发送消息,并执行 Action 方法。虽然 手势识别器和 UIControl 类一样,都是使用了 Target-Action 设计模式,但是手势识别器并不会将消息 交由 UIApplication 对象来进行发送。因此,我们无法使 用与 UIControl 控件相同的处理方式,即通过响应者链的 方式来实现对手势操作的全埋点。
由于 UIGestureRecognizer 是一个抽象基类,所以它