ios 事件的传递

IOS 开发 手势 及事件传递机理 ios手势是ios开发不可或缺的一部分,但对于ios的手势及事件相应机理大家并不知道,所以今天给大家讲一讲ios的事件相应机理 首先,ios的事件传递是依靠“事件链”传递的,当传递到链的某一个链环上的对象处理了这个事件,事件就停止传递。那么事件链是神马东西?          事件链是由一组UIResponder(能够响应时间的基类)组成的对象,当然有事件头和事件尾,事件从头开始传递的,挨个询 阅读详情

ios 事件的传递

在众多的iOS应用App中,我们免不了要在上面进行各种操作,比如点击了某个button,点击了某个view,点击了某个textView,双击了一张图片另其放大,两个手指操作使图片缩放等等。当然了我所说的button,view,textView是对于开发者而言的,对外行来说并不明白这是什么,其关心的也只是做了相关的操作继而产生了相应的效果,那么… 你看了我写的这篇文章当然明白我想要表达的意思了,就是标题所立意的,事件的传递。

说这个问题之前我要先说另外一个问题,我们在iOS新手时就常听说的一个名词是“viewController的生命周期”,其生命周期中有好几个阶段我就不一一提及了,单单说两个,一是viewDidLoad 另一是viewWillAppear,那明白生命周期有什么用呢,点击了一个按钮之后弹出一个新的viewController,这个动作很简单,而且也很潇洒,当然了时间也很短,极短的时间内pop到了你想要看的界面,这个极短的过程中其新老界面都执行了生命周期中的某些个方法,你明白它的生命周期就可以在合适的方法内部写一些代码来执行你想要的操作。

同理,这就是为什么要明白iOS事件传递的原因了,准备要自己写写,突然百度了一下,看到一篇写的很详细的帖子,觉得自己写并不会更好,所以发了链接,想看的可以点开看看
https://www.jianshu.com/p/2e074db792ba

另:
里面写的很长看完看懂得费一些思量,抓住里面的关键点,比如继承自UIResponder的对象才可以进行事件的传递,事件传递的三大类UIApplication,UIViewController,UIView等等,之所以继承UIResponder的对象可以进行事件的传递是因为UIResponder提供了4个对象方法来处理触摸事件等等,这四个方法有点像scrollView的几个代理方法一样,都是抓取操作的某个时间点来做不同的事情,你看完这篇讲解还可以往下思考另外一个问题,一个类中的对象方法赋予了继承自这个类的对象的一些能力,同样代理也赋予了遵守了这个协议的类的一些能力,那么功能相似的这两种操作为什么设计者当初不求统一而分派两立呢?

不管学习什么,我始终认为在学习之前多想想为什么要这样,在学习中再想想,等你明白了就会知道了为什么这样设计,同时也有助于你形成好的编程思维。

iOS 中事件的响应链和传递链 iOS事件链有两条:事件的响应链;Hit-Testing事件的传递链 响应链:由离用户最近的view向系统传递。initial view –> super view –> … –> view controller –> window –> Application –> AppDelegate 传递链:由系统向离用户最近的view传递。UIKit –> a... 阅读详情

相关推荐

Keil环境下单片机串口通信实战:如何用printf发送中文(附完整代码)

本文详细解析了在Keil开发环境下,单片机通过串口通信发送中文信息时产生乱码的根本原因及解决方案。核心在于理解并统一编码(如GB2312或UTF-8),并正确重定向printf函数。文章提供了针对STC89C52和STM32F103的完整代码示例,涵盖工程配置、编码设置、调试技巧,帮助开发者实现稳定可靠的中文串口输出。

weixin_29168675的博客 468

【iOS】事件传递与响应机制

提到响应者链与事件传递,如果看过其他人的博客,经常能看到这经典的三张图本文会对事件的传递与响应机制进行详细的讲解当触摸事件发生后,系统会自动生成一个UIEvent对象,记录事件产生的时间和类型然后系统会将UIEvent事件加入到一个由管理的事件队列中然后将事件分发给UIWindow,主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件不断递归调用hitTest方法来找到第一响应者如果第一响应者无法响应事件,那么按照响应者链往上传递,也就是传递给自己的父视图一直传递直到。

weixin_72437555的博客 2608

告别复杂模型:用UFLD算法5分钟搞定车道线检测(附Python代码)

本文介绍了UFLD(Ultra Fast Lane Detection)算法在车道线检测中的高效应用,仅需5行核心代码即可实现实时检测,特别适合边缘计算设备。通过对比传统方法,UFLD在推理速度、模型大小和硬件需求上具有显著优势,是深度学习领域轻量级解决方案的典范。

weixin_27872611的博客 288

iOS事件响应链和事件传递原理

事件响应链是一种将事件从事件源(例如触摸屏幕)传递到最终处理事件的对象的机制。在iOS中,事件源可以是触摸、手势、按钮点击等用户操作。事件传递是指将事件从一个对象传递到另一个对象的过程,这个过程涉及到事件的捕获、传递和响应。iOS的事件传递机制是基于响应者链(Responder Chain)的。每个UI对象都可以成为响应者,并且它们按照一定的顺序组成了响应者链。当一个事件发生时,系统会在响应者链中寻找合适的响应者来处理事件,这个过程就是事件的传递。

good7ob的博客 803

有了网段为什么还要有VLAN???

近几日,在学习VLAN及VXLAN方面的知识,对于产生原因做一个总结及详解。 VLAN(Virtual Local Area Network,虚拟局域网),其主要用途是用来缩小广播域,即进行隔离。 先对广播域的一个概念做如下描绘:如下图,主机A、B、C、D均连接在交换机SW1上,其中A、C同网段为192.168.252网段,而B和D同网段,为192.168.250网段。 现,假如A与C第...

dandandean_96的博客 6887

Android 默认授予所有应用权限以及特殊权限处理

PackageManagerService作为android的主要系统服务之一,包含处理应用权限相关的职责。源码地址如下:在PMS成功启动时并收到回掉systemReady回进行应用权限授予。DefaultPermissionGrantPolicy为权限处理策略管理类。这里并没有赋予所有系统应用权限,所以当进行应用时还是会显示权限检查的弹框。可通过此方法进行所有应用权限赋予:如果不想所有应用都授予权限,可考虑在system/etc下的权限相关xml文件添加应用包名和所需权限。

Jimmy的专栏 1510

iOS事件传递和响应

事件传递过程:从application传递到最上层view,如下图事件传递过程事件响应处理过程:从最上层view开始向下传递,与事件传递方向相反事件响应过程。

鹏仔的技术博客 2127

RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入

RH850从0搭建Autosar开发环境【23】- Davinci Configurator之DCM实操实现DID的读取写入,结合Developer实现

weixin_42412049的博客 1811

iOS ------ 事件响应链

当触摸事件发生后,系统会自动生成一个UIEvent对象,记录事件发生的事件和类型然后系统会把UIEvent事件加入到一个由管理的事件队列中然后会讲事件分发给UIWindow,主窗口会在视图层次结构中找到一个合适的响应者对象来处理触摸事件。不断递归调用hitTest方法来找到第一响应者如果第一响应者无法响应事件,那么会按照响应者链往上传递,也就是传递给自己的父视图一直传递直到,如果都无法响应,事件就会被丢弃。

m0_73974056的博客 2342

目标检测YOLO实战应用案例100讲-跨模态、多级别融合的RGB-D显著目标检测方法研究(续)

在第二章介绍了本研究的跨模态特征融合方法,第二章对于多级别特征的融合, 使用的是与基线模型baseline相同的方法:相邻级别的特征中,高级特征进行上采 样到与低级特征相同的尺度,再将高级特征通过降维得到与低级特征相同的通道数 量,最后对二者进行特征叠加,如此自顶向下的进行多级别的特征融合。本章主要 介绍本研究在特征层面的另一发现,并基于此发现引出的本文的第二个创新点:多 级别特征的融合方法。另外,在网络最深层,本文设计了一个新的模块来获取大的 感受野,对于大尺度目标能够增加更多语义信息,提升检测效果。 骨

qq_36130719的博客 469

【Unity Shader】Special Effects(十二)Glow 外发光(UI)

Properties_GlowColor ("外发光颜色", Color) = (0, 0, 0, 1)_GlowIntensity("外发光强度", Range(0, 1)) = 1参数详解:_GlowColor:外发光颜色,指定外发光的显示颜色。_GlowIntensity:外发光强度,指定外发光的显示强度,0为不可见,1为最强强度。

神码编程 936

【iOS】——响应者链和事件传递链

如果当前这个view是控制器的view,那么控制器就是上一个响应者;如果当前这个view不是控制器的view,那么父控件就是上一个响应者。传递链:有系统向最上层view传递,->window->root view-> … ->first view响应连:由最基础的view向系统传递,first view->super view-> … ->->window->->如果我们不想让某个视图响应事件,只需要重载 PointInside:withEvent:方法,让此方法返回NO就行了.

m0_73974920的博客 1968

Arduino I2C for TCA9548A应答扫描程序

Arduino I2C for TCA9548A应答扫描程序

perseverance51博客 1119

iOS事件传递机制

前言: 按照时间顺序,事件的生命周期:   事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 重点和难点是:   1.如何寻找最合适的view   2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) 事...

wywinstonwy的专栏 3万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

iOS 事件传递与响应链原理

目录一 iOS中的事件1 事件的产生和类型2 响应者对象3 UIview和CALayer二 事件传递和响应机制1 事件的传递2 系统实现2 视图的响应三 事件和runloop 一 iOS中的事件 1 事件的产生和类型 用户对iOS设备进行了一些操作, 比如点击屏幕、滑动屏幕, 摇晃设备, 拖拽图片, 放大图片, 远程控制(蓝牙)等等, 这些操作生成了事件(UIEvent). 事件被官方根据具体操作...

weixin_43837354的博客 2149

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ios和android事件传递,IOS事件的传递和响应机制

1 IOS事件IOS中的事件有3大类型:· 触摸类型· 加速加速计事件· 远程控制事件本文只讨论IOS的触摸事件1.1响应者对象(UIResponder)在IOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接受并处理事件,我们称之为“响应者对象”。UIApplication、UIViewController、UIView都继承自UIResponder,均能接受并处理事件。...

weixin_34982065的博客 219

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

iOS | 事件传递及响应链

宋卓的博客 2311

ios和android事件传递,iOS 事件传递和事件响应链

最近在面试的过程中遇到了面试官的一些问题:子view在超出父view能不能响应点击?如果不能的话怎么来处理让超出父view的视图响应点击?一个触摸事件发生的时候事件怎么传递的?一个触摸事件的响应过程?由于对整个事件传递和时间响应链的理解不是特别彻底,所以回答的不是很好,所以在这里系统的研究下,也方便以后自己查阅。先说结论性的东西iOS的事件传递是从下到上的(父视图-->子视图),有不能接收的...

weixin_33842969的博客 293

iOS中事件传递过程

iOS中,UIApplication管理着一个事件的队列,当系统获取用户的点击或滑动等事件后,就会将这些事件按顺序插入UIApplication管理的这个队里中,UIApplication再从这个队列中取出事件传递给UIWindow,UIWindow传递给它的View,View继续传递给它的子视图。那么系统是如何正确的将这个事件传递到用户操作的视图上呢? 原来每一个UIView都拥...

135

iOS的事件传递响应链

iOS的事件传递响应链 一、响应链 响应链主要是对UIResponder及其子类事件传递的描述。 UIViewController及UIView都是继承UIResponder的。 而其中的UIView更是UIKIT框架下大部分控件的父类(几乎所有吧),所以能够响应事件的对象,实质上都相当于不断拦截转发至最后的可响应对象。 如下图,可以看到UIRes

zramals的博客 619

iOS 事件传递面试题

没有比这里更全的了,看我就好了 面试官😃 :你了解iOS中的事件传递机制吗?

weixin_38934440的博客 617

iOS开发-触摸事件传递Touch Event

文章目录大概流程Source0事件传递hitTest方法实现响应链 大概流程 从iphone屏幕点击,到事件响应大概经历了这几个过程 屏幕接收到点击事件,包装成Source0类型的Event事件添加到Main Runloop中 主线程执行Source0,并开始事件传递,确认响应者,即由UIApplication传到UIWindow,再由父视图传子视图,即由下至上传递,通过pointInside:...

CaicaiNo.1 1805

iOS 事件传递机制和响应者链条

iOS响应者链条 iOS中加载的时候会先执行main函数int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 根据main函数的参数加载UIAppli...

为者常成,行者常至 7135

ios触摸事件二 :事件传递

了解了UIEvent以及UITouch之后,那么事件在iOS是如何传递的呢?事件的传递: 从事件发生到其处理的对象,传递要经过特殊的一段过程。当用户点击设备屏幕时,IOS捕捉到一系列的触摸,将其打包到UIEvent对象中并放置到应用程序活动事件队列中。UIApplication对象从事件队列中取出最前面的事件并将其分发。通常,其发送事件给应用程序的主窗口——UIWindow实例,再由窗口对

u011639162的专栏 864

iOS—事件传递、响应者链

文章目录UIKit继承图UIEventUIResponder注意响应者第一响应者响应者链事件处理的过程第一步,寻找第一响应者第二步,响应UIEvent事件UIControl的Target-Action设计模式扩大点击范围穿透 UIKit继承图 UIEvent 在iOS中,当一个事件发生时,系统会搜集相关事件信息,创建一个UIEvent对象。 iOS中的事件类型: 触摸事件 加速计事件(运动事件) 远程遥控事件 一个事件的周期:事件的产生—事件的传递—事件的响应 事件传递和事件响应的区别: 事件传递是

qq_45836906的博客 991
上一篇: Swift调用摄像头之权限判断
下一篇: Swift - NotificationCenter通知的基本使用
SoftwareDoger
博客等级 码龄10年 8粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值