美文网首页iOS
iOS响应链机制

iOS响应链机制

作者: Dorom_81d0 | 来源:发表于2019-08-05 16:35 被阅读0次

寻找第一响应者原理如下:

1.当用户点击屏幕时,会产生触摸事件,系统会将该事件加入到一个由UIAplication管理的事件队列中

2.UIAplication 会从实践队列中取出最前面的事件进行分发以便处理,通常,先发送给应用程序的主窗口(UIWindow)

3.UIWindow会调用hitTest:withEvent:方法在视图(UIView)层次结构中找到一个最适合的UIView来处理触摸事件(hitTest:withEvent:其实是UIView的一个方法,UIWindow继承自UIView,因此主窗口UIWindow也是输入视图的一种)

4.HItTest:withEvent:方法处理流程大致如下:

若pointInside:withEvent:方法判断触摸点是否在当前视图内:

若pointInside:withEvent:方法返回no,说明触摸点不在当前视图内,则当前视图的hitTest:withEvent:返回nil

若pointInside:withEvent:返回yes,说明触摸点在当前视图内,则遍当前视图所有子视图(subviews),调用子视图hitTest:withEvent:方法重复以上步骤,子视图的遍历顺序是从top到bottom,即从subviews数组的末尾向前遍历,直到有子视图的hitTest:withEvent:方法返回非空对象,获取全部子视图遍历结束:

若第一次有子视图的hitTEst:withEvent:方法返回非空对象,则当前视图的hitTest:withEvent:方法就返回此对象,处理结束

若所有子视图的hitTest:withEvent:方法都返回nil,则当前视图的hitTest:withEvent:方法返回当前视图自身(self).


找到第一响应者后,进行事件分发。

原文点击进入

相关文章

  • 深入浅出iOS事件机制

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

  • iOS面试-基础

    [toc] Runloop AutoReleasePool 多线程 响应者链 消息响应机制 消息转发机制 iOS内...

  • iOS 响应者链

    一个目前最新最全的分析 iOS事件处理,看我就够了~ 对响应者链机制的图文分析 深入浅出iOS事件机制 对响应者链...

  • iOS响应链机制

    寻找第一响应者原理如下: 1.当用户点击屏幕时,会产生触摸事件,系统会将该事件加入到一个由UIAplication...

  • iOS基础篇-事件处理

    1、首先需要理解iOS事件处理机制 理解事件处理、响应者、响应者链概念https://developer.appl...

  • 响应链详解

    响应链 顾名思义,响应链就是对某些行为的响应,按照一定的机制进行流动,所形成的链条 在iOS中:用户点击屏幕时,会...

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

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

  • 什么是响应者链?ios面试攻克篇(三)

    iOs中的响应者链( )是用于确定事件响应者的一种机制,其中的事件主要指触摸事件( ),该机制和UIKit中的UI...

  • iOS 响应链

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

  • iOS基础补完计划--透过堆栈看事件响应机制

    iOS基础补完计划--透过堆栈看事件响应机制 iOS基础补完计划--透过堆栈看事件响应机制

网友评论

    本文标题:iOS响应链机制

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