一.Gesture Recognizers

Gesture Recognizers是在iOS3.2引入的,可以用来识别手势、简化定制视图事件处理的对象。Gesture Recognizers的基类为UIGestureRecognizer,这一个抽象基类,定义了实现底层手势识别行为的编程接口。在UIKit框架中提供了6个具体的手势识别类,用来识别常见的手势。这6个手势识别器类为:

  • UITapGestureRecognizer:用来识别点击手势,包括单击,双击,甚至三击等。
  • UIPinchGestureRecognizer:用来识别手指捏合手势。
  • UIPanGestureRecognizer:用来识别拖动手势。
  • UISwipeGestureRecognizer:用来识别Swipe手势。
  • UIRotationGestureRecognizer:用来识别旋转手势。
  • UILongPressGestureRecognizer:用来识别长按手势。

为了识别手势,需要将Gesture Recognizers关联到其检测触摸事件的view上,可以使用UIView的addGestureRecognizer:方法将手势识别器绑定到视图上。Gesture Recognizers在触摸事件处理流程中,处于观察者的角色,其不是view层级结构的一部分,所以也不参与responder chain。在将触摸事件发送给hit-test view之前,系统会先将触摸事件发送到hit-test view上绑定的或hit-test view父视图(superview)上绑定的Gesture Recognizers上。其流程大概如下图所示:

注:图中view与Gesture Recognizer的关系是,Gesture Recognizer关联在view或view的superview(可能多级)上。

二.Gesture Recognizers与事件分发路径的关系

Gesture Recognizers可能会延迟将触摸事件发送到hit-test view上,默认情况下,当Gesture Recognizers识别到手势后,会向hit-test view发送cancel消息,来取消之前发给hit-test view的事件。控制这个流程的是UIGestureRecognizer的三个属性

  • cancelsTouchesInView (默认为YES)
  • delaysTouchesBegan (默认为NO)
  • delaysTouchesEnded (默认为YES)

Gesture Recognizers与触摸事件分发相关推荐

  1. android 抽屉侧滑冲突,利用DrawerLayout和触摸事件分发实现抽屉侧滑效果

    本文实例为大家分享了DrawerLayout和触摸事件分发实现抽屉侧滑效果的具体代码,供大家参考,具体内容如下 效果展示 还是看代码实在,直接上菜了. 1.MainActivity的代码: publi ...

  2. Android触摸事件分发

    Android的触摸分发机制和如何实现拦截 Android的触摸分发机制和如何实现拦截 前言 触摸事件的分发 情景分析 总结 前言 在自定义ViewGroup中,有时候需要实现触摸事件拦截,比如Lis ...

  3. android触摸事件分发,Android 事件分发机制

    Android 事件分发机制一直让人头痛,之前也是面向 GitHub 编程得过且过.今天下定决心了解一下,以便后面自己定制 View 效果.Android 触摸事件有三个基本类型:ACTION_DOW ...

  4. Cocos-2d 关于SwallowTouch,进一步解释触摸事件分发机制

    问题情境 模拟一个类似游戏提示信息的层: 1.游戏主场景可触摸,可交互: 2.当提示显示提示信息时,只有提示信息这一层可触摸同用户交互,其背景则不能继续响应触摸事件 3.当提示信息层从主场景中移除之后 ...

  5. 安卓触摸事件分发流程图

    对安卓事件分发有了一个系统了解后,那我们现在说说我们项目中如何处理事件冲突 //以ScrollView嵌套scrollView两个ViewGruop上下滑动冲突问题为案列 xml代码如下 <?x ...

  6. 调用某个按钮事件_高级UI晋升之触摸事件分发机制(一)

    更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 0. 前言 鉴于安卓分发机制较为复杂,故分为多个层次进行讲解,分别为基础篇.实践 ...

  7. android(八)、触摸事件分发

    本文章基于android 4.2.1,从view拿到事件信息开始,首先对事件做一些检测及预处理:如果事件有问题的话则抛弃信息,否则的话开始对事件进行分析. 首先判断mListenerInfo是否为空, ...

  8. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 一 )

    Android 事件分发 系列文章目录 [Android 事件分发]事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) [Andr ...

  9. Android6.0源码解读之ViewGroup点击事件分发机制

    本篇博文是Android点击事件分发机制系列博文的第三篇,主要是从解读ViewGroup类的源码入手,根据源码理清ViewGroup点击事件分发原理,明白ViewGroup和View点击事件分发的关系 ...

最新文章

  1. 电源稳定性测试软件,电源稳定性测试
  2. 关于使用python的open函数时报No Such File or DIr的错误
  3. 在Linux上安装Python 3
  4. LeetCode 20 有效的括号
  5. Python OpenCV——函数 cv2.findContours 运行错误【in function ‘cv::pointSetBoundingRect‘】解决方案
  6. 斐波那契实现阶乘js_功能与命令式编程。 Java 8中的斐波那契,素数和阶乘
  7. 【草稿】windows + vscode 远程开发
  8. 2015.11.27---Java
  9. web.xml中webAppRootKey
  10. fastreport打印指定路径图片显示不出来_报表工具中图片文件怎么展示---本地图片--网络图片--数据库图片...
  11. 基于matlab的锁相环频率合成器,基于simulink的电荷泵锁相环频率合成器建模与仿真.pdf...
  12. 深入剖析锂电池保护电路的工作原理
  13. 题源报刊精品阅读-词汇1
  14. 为什么有那么多编码员音乐家?
  15. Visual Paradigm社区版安装教程
  16. 存量之争:国美零售以全零售探索破局之道
  17. 心态很容易受别人影响_孩子在学校受了委屈,家长该如何做?
  18. 设置ZIP文件打开密码的两种方法
  19. 2020-10-19(JS收官答题卡)
  20. 电池SOC仿真系列-基于UKF算法的电池SOC估算研究

热门文章

  1. 【打卡定制版】11月最新H5定制版早起打卡支付已接带完整搭建教程
  2. FPGA实现SMPTE视频处理
  3. Facebook AI的DETR:一种基于Transformer的目标检测方法
  4. BBC 六分钟英语 (zz)
  5. 理解C语言(零) 导读(下):有用的C语言工具-从Make说起
  6. echarts:饼、柱状、折线图的配置说明
  7. Rust入坑指南:朝生暮死
  8. 程序员的黄金奋斗时期是前5年 | 专访CSDN博主丁威
  9. 控制局域网内的电脑远程开机的方法
  10. 2022-1-8数据库期末复习提纲(三)