美文网首页
iOS事件形成、传递和响应

iOS事件形成、传递和响应

作者: 顺其自然2017 | 来源:发表于2020-12-05 21:26 被阅读0次

事件的形成

    1、iPhone 采用电容触摸传感器和人体交互,在手指触摸时可形成耦合电容

    2、触摸屏屏幕四角上存在电极,电流从四角流出到手指触摸点,存在与距离成正比的电流差,从而精确计算触摸点到屏幕的距离

事件的传递

事件到系统

    1、iOS操作系统进程之间采用消息发送的方式通信,即IPC(Inter-Process Communication)

    2、Mach Port机制:用户进程调用内核进程的通信机制,先向内核申请访问端口,然后再向该端口发送消息

    3、用户触摸屏幕形成点击事件,通过IOKit.framework包装成IOHIDEvent对象,通过消息发送方式传递给苹果系统应用层SpringBoard.app,它接收消息后做进一步分发处理,判断当前是否存在活跃应用程序,通过Mach Port机制传递给当前应用的主进程,否则...

系统到应用

    1、应用程序主线程申请了MachPort,通过__IOHIDEventSystemClientQueueCallback()系统方法回调监听IOHIDEvent事件

    2、通过使用__UIApplicationHandleEventQueue()方法将监听到的IOHIDEvent对象包装成UIEvent对象,并通过sendEvent:函数发送给UIWindow(keyWindow),做一些判断逻辑,选取事件最终执行者。

寻找最终执行者(Hit-Testing)

    1、事件的传递自下而上,层层递进 iOS system -> UIApplication -> UIWindow -> UIViewController ->UIView

    2、屏幕最上层的视图有更高的执行优先级

    3、父视图无执行能力,则子视图也无法执行,若父视图有执行能力则要判断它的子视图

    4、寻找最终执行者的过程中, UIEvent对象中的UITouch会不断打上标签(当前可执行者,父视图,执行事件类型)

    5、判断当前试图是否可执行事件的前置条件(有和用户交互能力、没有被隐藏、透明度大于0.01)

    6、判断当前试图是否可执行事件的方法 hitTest:withEvent

事件的执行

    1、事件除了被最终执行者消耗,还能被手势识别器或是 target-action 模式捕获并消耗。

    2、当事件没有被当前执行者消耗掉

    3、control类型控件,不管是否去执行事件,事件都会被消耗掉

    4、所有执行者都派生自UIResponder类,本身存在执行事件的能力,默认实现 touchesBegin touchesMove touchesEnded touchesCancelled四个方法

相关文章

  • iOS事件形成、传递和响应

    事件的形成 1、iPhone 采用电容触摸传感器和人体交互,在手指触摸时可形成耦合电容 2、触摸屏屏幕四角上存在电...

  • iOS 响应链

    iOS开发 - 事件传递响应链iOS 响应者链,事件的传递事件传递之响应链Cocoa Touch事件处理流程--响...

  • 初识iOS事情处理机制

    参考:史上最详细的iOS之事件的传递和响应机制-原理篇iOS触摸事件全家桶史上最详细的iOS之事件的传递和响应机制...

  • 深入浅出iOS事件机制

    深入浅出iOS事件机制事件传递:响应链事件传递响应链

  • iOS之事件的传递和响应机制

    iOS之事件的传递和响应机制

  • iOS 中事件的响应链和传递链

    iOS 事件的主要由:响应连 和 传递链 构成。一般事件先通过传递链,传递下去。响应链,如果上层不能响应,那么一层...

  • 不用但一定要懂 ---- iOS 之 响应链、传递链 与 手势识

    iOS 事件的主要由:响应连 和 传递链 构成。一般事件先通过传递链,传递下去。响应链,如果上层不能响应,那么一层...

  • ios 事件传递和响应

    史上最详细的iOS之事件的传递和响应机制-原理篇iOS触摸事件传递响应之被忽视的手势识别器工作原理手势事件中can...

  • iOS事件,原来如此

    精简地说:iOS事件分为传递和响应两个部分。 事件传递(建立传递链): iOS系统检测到手指触摸(Touch)操作...

  • iOS响应者链

    参考好文 iOS开发-事件传递响应链,用运行时分析 iOS事件传递:响应者链[译] http://www.jian...

网友评论

      本文标题:iOS事件形成、传递和响应

      本文链接:https://www.haomeiwen.com/subject/yccnwktx.html