首页 > 其他分享 >iOS:响应链的原理

iOS:响应链的原理

时间:2023-04-21 13:44:48浏览次数:44  
标签:触摸 iOS 响应 事件 原理 UIApplication UIView

iOS中不是所有的对象都能响应的,只有继承 UIResponder 的对象才能进行响应处理事件,称之为响应者对象

常见的响应者对象有:UIView, UIViewController, UIApplication

  1. 响应链的流程:
1. 当产生某一个触摸事件的时候,这个触摸事件回添加到UIApplication管理的事件队列中。
2. UIApplication 将事件向下分发,即 UIWindow
3. UIWindow 继续将事件向下分发,即UIView
4. UIView 查看自己是否能够处理事件,以及触摸点是否在自己身上。如果能,则继续寻找子视图
5. 遍历子空间,重复 4 步骤
6. 如果没有找到能够处理的子视图,则自己处理。
  1. 响应链不能处理的几种情况
1. alpha = 0
2. hidden = YES
3. userInterfaceEnable = NO
  1. hitTest:withEvent 函数
有时候为了满足项目需求,需要自定义一个合适的 View 来响应触摸事件,可以使用该方法来实现

标签:触摸,iOS,响应,事件,原理,UIApplication,UIView
From: https://www.cnblogs.com/dulinshun/p/ios-xiang-ying-lian-de-yuan-li.html

相关文章

  • iOS:字典存储数据的原理
    注:适用于Java等其他语言的技术原理存储的逻辑1.字典底层有一个数组,靠数组来存储数据;2.将key进行hash算法。得到`hash值`;3.将`hash值`与`数组的长度`进行`位与运算`,得到的结果为数据应该存储的位置;4.找到数组对应的位置,然后设置对应的数据(此处使用链表①进行......
  • iOS:AutoReleasePool
    具体参考文章AutoRelease是依靠AutoreleasePoolPage来进行push和pop进行工作的AutoreleasePoolPage为双向链表,parent字段指向上一层,child指向下一层每个AutoreleasePoolPage的大小为4096字节每个AutoreleasePoolPage最多可以存放505个对象。首个page可以......
  • iOS:runloop 相关
    一个Runloop包含了多个mode一个mode包含了若干个source0/source1/time/observerRunloop启动时只能选择其中一个model作为当前modelRunloop常用的Model1.UIInitializationRunLoopMode:首次启动时执行的mode,启动后不再使用2.kRunloopDefaultMode:默认mode,一般主......
  • 【深度思考】聊聊CGLIB动态代理原理
    1.简介CGLIB的全称是:CodeGenerationLibrary。CGLIB是一个强大的、高性能、高质量的代码生成类库,它可以在运行期扩展Java类与实现Java接口,底层使用的是字节码处理框架ASM。Github地址:https://github.com/cglib/cglib。CGLIB的Maven坐标如下所示:<dependency><groupId>......
  • BIOS
    配置开发环境,写一个helloworld驱动程序编写基本的驱动程序代码结构,导出为自定义项目模板,方便以后使用模板创建项目,少写一些样板代码;同时了解了wdk的ntifs头文件和预处理指令#pragmaonce  vscode联机搜索文档 开发三件套: 调试器WinDbg(X64)+虚拟机VirtualBox+编译器VSc......
  • 【前端可视化】ECharts 实现响应式图表
    响应式图片的实现步骤:1.图表只设置高度,宽度设置为100%或不设置。2.监听窗口的resize事件,即监听窗口尺寸的变化(需节流)。3.当窗口大小改变时,然后调用echartsInstance.resize改变图表的大小。另外需要注意的是:在容器节点被销毁时,可以调用echartsInstance.dispose以销毁e......
  • iOS:Cocoapods 常用命令
    命令描述安装与卸载sudogeminstallcocoapods安装cocoapodssudogeminstallcocoapods-v1.10.0安装cocoapods1.10.0版本sudogemuninstallcocoapods卸载cocoapodssudogemuninstallcocoapods-v1.10.0卸载版本1.10.0---安装在个......
  • Socks5代理与HTTP代理:基本概念、工作原理和在网络应用中的应用
      在互联网上,代理服务器是一种非常重要的技术手段,可以实现许多网络应用的高效和安全运行。Socks5代理和HTTP代理是两种常见的代理服务器类型,它们在网络应用中都有着重要的作用。本文将介绍Socks5代理和HTTP代理的基本概念、工作原理以及在网络应用中的应用。第一部分:Socks5代理......
  • 门禁系统中人脸检测技术的原理剖析和使用教程
    引言人脸检测API是一种基于深度学习技术的图像处理API,可以快速地检测出一张图片中的人脸,并返回人脸的位置和关键点坐标,在人脸识别系统、人脸情绪识别等多种场景下都有极大的应用。本文将从人脸检测的发展历程、原理、特点等角度出发,一文带你看透人脸检测API。人脸检测技术......
  • Android事件分发-基础原理和场景分析
    作者:京东零售 郭旭锋1为什么需要事件分发和其他平台类似,Android中View的布局是一个树形结构,各个ViewGroup和View是按树形结构嵌套布局的,从而会出现用户触摸的位置坐标可能会落在多个View的范围内,这样就不知道哪个View来响应这个事件,为了解决这一问题,就出现了事件分发......