美文网首页
iOS 事件分发

iOS 事件分发

作者: Hardy_Hu | 来源:发表于2017-07-07 11:31 被阅读0次

事件分发

事件分发过程包含两方面:

  1. 点击事件的传递过程,主要是通过Hit-TestView查找当前被点击的点属于哪一个View。
  2. 响应链,事件的响应过程,主要是某个View如何响应点击事件。

点击事件传递

当点击屏幕时,通过hit-testing找到触摸点所在的view,查找过程如下:

  • 从window开始一层一层往下遍历所有的子View;
  • 如果某个View的userInteractionEnabled = NO, enabled = NO, 或alpha <= 0.01, hidden = YES 等情况,则说明该View不是响应View, 直接返回nil, 不再在此View及其subView中查找。
  • 如果触摸点不再View中,直接返回nil, 不再在此View及其subView中查找。
  • 如果触摸点在View中,则继续遍历它的子View, 直到找到被点击的View。

总结下点击事件的传递,从window开始查找,一层一层的遍历其subview,找到被点击的点在哪个View。 从大View到小View查找。

事件响应链

通过hit-testing找到响应的view之后,点击事件就交给它来处理,此时hit-testView就是firstResponder,如果它无法响应事件,则把事件交给它的父View,直到有事件的响应者或传递到appDelegate结束为止。
这一系列的响应者和事件的传递方向就是响应链,在响应链中,所有响应者的基类都是UIResponder, 也就是说所有可以响应事件的类都是UIResponder的子类。

总结下事件响应:从子View开始响应事件,如果不能响应,则往上看父View是否能响应,如果能响应则响应,如果不能则继续往上查找直到appDelegate结束。从小View到大View查找。

相关文章

  • IOS 基础(一)事件,响应链机制分析

    @[TOC](IOS 事件,响应链机制分析) 1. 事件分发和响应者链条 1.1 简述 事件分发:自上而下的由UI...

  • 《iOS事件触摸与手势》

    iOS事件触摸与手势 一、事件分发处理【由外到内】在iOS中发生触摸后,事件会加到UIApplication事件队...

  • iOS 事件分发

    事件分发 事件分发过程包含两方面: 点击事件的传递过程,主要是通过Hit-TestView查找当前被点击的点属于哪...

  • ios事件分发:

    类型: 1.触摸事件 2.加速计事件 3.远程控制事件 参考网址: http://www.jianshu.com/...

  • UI要点

    事件分发机制及响应者链 事件分发机制 iOS 检测到手指触摸 (Touch) 操作时会将其打包成一个 UIEven...

  • 事件的处理机制和手势的操作

    事件的处理机制和手势的操作 iOS中的事件分发## 事件的分类### Touch Events(多点触摸事件) 视...

  • iOS学习笔记05-触摸事件

    一、事件分发处理【由外到内】 在iOS中发生触摸后,事件会加到UIApplication事件队列,UIApplic...

  • ios事件分发机制

    官方文档,摘取一部分说明: “当用户 与 iPhone的触摸屏产生互动时,硬件就会探测到物理接触并且通知操作系...

  • iOS事件分发机制介绍与应用

    iOS事件分发机制介绍与应用 打开某App点击登录按钮后弹出登录页面。这是一个事件分发与响应的示例。我们来探究下该...

  • View绘制流程及事件分发

    事件分发相关 1、事件分发流程 ViewGroup的事件分发 View的事件分发 View和ViewGroup的O...

网友评论

      本文标题:iOS 事件分发

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