UIGestureRecognizer手势介绍
UIGestureRecognizer是处理手势的一个抽象类,可以使用系统定义的手势或者自定义手势识别,是响应触摸事件的三大方式之一。
UIGestureRecognizer常用子类
点击手势:UITapGestureRecognizer
捏合手势:UIPinchGestureRecognizer
旋转手势:UIRotationGestureRecognizer
轻扫手势:UISwipeGestureRecognizer
拖动手势:UIPanGestureRecognizer
边缘侧滑:UIScreenEdgePanGestureRecognizer
长按手势:UILongPressGestureRecognizer
点击手势(Tap)应该是我们最常用的手势。
除了可以使用系统定义的手势,也可以子类化实现自己的手势,比如官网自定义手势
UIGestureRecognizer创建
- 创建一个Target对象,事件响应对象,比如某个View;
- 实例化手势对象。使用-initWithTarget:action:方法进行对象初始化和响应绑定,设置当手势事件发生时,调用的方法;
- 为响应对象添加手势,使用addGestureRecognizer:方法;
- 实现手势事件发生时所调用的方法,及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触摸事件全家桶:理解手势冲突神文章。
UIGestureRecognizer手势介绍相关推荐
- UIGestureRecognizer手势
UIGestureRecognizer手势 目录 1.什么是手势以及手势的种类 2.手势的添加及常用属性 3.多种手势并用 1.什么是手势以及手势的种类 UIKit中包含了UIGestureRecog ...
- ios 监听一个控制器的属性_iOS 事件(UITouch、UIControl、UIGestureRecognizer)传递机制
gitHub地址 : 响应链Demo 文章有点长,如果只是想了解大概过程的,可以直接看后面的总结 一.触摸.事件.响应者 1. UITouch源起触摸一个手指一次触摸屏幕,就对应生成一个UITouch ...
- iOS —— 触摸事件传递及响应与手势
iOS 的事件分为三种,触摸事件(Touch Event).加速器事件(Motion Events).远程遥控事件(Remote Events).这些事件对应的类为UIResponder.本文只探究触 ...
- 手势(Gesture)
一.Android提供的两种手势:①Android提供了手势检测,并为手势提供了相应的监听器 ②Android允许开发者添加手势,并提供了相应的API识别用户手势 二.手势检测:手势检测器 ...
- Flutter中的点击、拖动和其它手势
Flutter中的点击.拖动和其它手势 介绍 Pointers 手势 手势消歧 介绍 本文档介绍了如何在Flutter中监听并响应手势(点击.拖动和缩放). Flutter中的手势系统有两个独立的层. ...
- UI之摇晃手机和触摸手势
摇晃手机 -(void)motionBegan:(UIEventSubtype)motionwithEvent:(UIEvent *)event//摇晃触发.[UIViewanimateWithDur ...
- Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View
本文同步发表于我的微信公众号,扫一扫文章底部的二维码或在微信搜索 HelloWorld杰少 即可关注. 写在开头 大家早上好,又到了每周和大家分享开发心得的时间啦!上周我分享了一篇关于 UIColle ...
- IOS学习路线(2014-05-08)
2019独角兽企业重金招聘Python工程师标准>>> 黑马最新IOS就业班(14年7月-12月份)培训视频教程 第一阶段:UI基础(17天) 计算器案例 介绍类前缀.简单介绍新建工 ...
- Android开发——用户在屏幕上的手势识别
0. 前言 转载请注明出处:http://blog.csdn.net/seu_calvin/article/details/52462493 Android开发中,我们常常需要获取用户的手势操作事 ...
最新文章
- [LeetCode]题解(python):108-Convert Sorted Array to Binary Search Tree
- 【总结整理】JQuery基础学习---DOM篇
- 如何更规范化编写 Java 代码
- SAP Fiori Launchpad Tile点击后跳转的调试技巧
- YznCMS 后台开发框架
- 学成在线首页——静态页面基础项目(HTML+CSS)【学习笔记】
- 【C++算法基础】快速排序以及边界问题
- oppo android root工具箱,oppo R11(全网通 安卓8.1)手机完美获取root教程,最强root工具,亲测可用!...
- Linux安装JDK-8-附有百度网盘链接
- 【65】如何通过sys文件系统remove和probe一个PCI设备
- 伺服舵机四方运动程序以及角度确定
- 统计学基础(四)—卡方检验怎么用?
- SQL SEVER登录失败,无法连接服务器或已成功与服务器建立连接,但是在登录过程中发生错误。(Win10版本,SQL 2019)
- word不能保存, 不能另存, 保存按钮 另存菜单不可用 的解决方法
- crmeb多商户系统安装(1)
- 《北风那个吹》大结局看完了
- 批量修改文件名 大量文件名称一键替换文字
- python练习题:输入某年某月某日,判断这一天是这一年的第几天?
- python建立分析模型_《利用Python进行数据分析》13.2 使用Patsy创建模型描述
- linux mint桌面mac,清新的Linux Mint 桌面壁纸 1920 x 1200