UIGestureRecognizer手势介绍

UIGestureRecognizer是处理手势的一个抽象类,可以使用系统定义的手势或者自定义手势识别,是响应触摸事件的三大方式之一。

UIGestureRecognizer常用子类

点击手势:UITapGestureRecognizer

捏合手势:UIPinchGestureRecognizer

旋转手势:UIRotationGestureRecognizer

轻扫手势:UISwipeGestureRecognizer

拖动手势:UIPanGestureRecognizer

边缘侧滑:UIScreenEdgePanGestureRecognizer

长按手势:UILongPressGestureRecognizer

点击手势(Tap)应该是我们最常用的手势。

除了可以使用系统定义的手势,也可以子类化实现自己的手势,比如官网自定义手势

UIGestureRecognizer创建

  1. 创建一个Target对象,事件响应对象,比如某个View;
  2. 实例化手势对象。使用-initWithTarget:action:方法进行对象初始化和响应绑定,设置当手势事件发生时,调用的方法;
  3. 为响应对象添加手势,使用addGestureRecognizer:方法;
  4. 实现手势事件发生时所调用的方法,及selector,事件函数单独定义。

UIGestureRecognizer常用属性和方法

初始化方法

public init(target: AnyObject?, action: Selector)初始化手势对象,并设置手势发生时调用的方法

获取手势点击的位置

public func locationOfTouch(touchIndex: Int, inView view:UIView?) -> CGPoint // 获取手势点击的位置;

手势点击的状态

public static var Recognized: UIGestureRecognizerState{ get }

UIGestureRecognizerState枚举值为

  • Possible:可能手势事件
  • Began:开始手势事件
  • Ended:结束手势事件
  • Changed:手势位置发生变化
  • Failed:无法识别的手势
  • Cancelled:取消手势事件(事件响应会发送)

手势类型

1. 离散型手势(tap、swipe)

  • 识别成功:possible ->  recognized
  • 识别失败:possible -> failed

2. 持续型手势(除了tap、swipe)

  • 完整识别:Possible -> Began -> [Changed] -> End
  • 失败识别:Possible -> Began -> [Changed] -> Cancelled

参考文档

UIGestureRecognizer官网介绍

iOS触摸事件全家桶:理解手势冲突神文章。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值