IOS - 响应者链条】的更多相关文章

简单来说就是:一级一级的找到响应的视图,如果没有就传给UIWindow实例和UIApplication实例,要是他们也处理不了,就丢弃这次事件... 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Motion Event) 3.远端控制事件(Remote-Control Event) 响应者链条概念:iOS系统检测到手指触摸(Touch)操作时会将其打包成一个UIE…
一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件 控件调用touches方法-->判断是否实现touches方法-->没有实现默认会将事件传递给上一个响应者-->找到上一个响应者   1.响应者链条: 由很多响应者链接在一起组合起来的一个链条称之为响应者链条 什么是响应者:继承UIResponder的对象称之为响应者对象  2.默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理 如何…
总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -> 3蓝色 -> 4黄色. 二,找到4黄色后,再从下到上遍历响应者链条:4黄色 -> 3蓝色 -> 2橙色  -> 1白色  -> UIWindow  -> UIApplication 1)如果4黄色实现了touches...这些函数(具体下面第二条)且没有调用 sup…
本文转自:http://www.linuxidc.com/Linux/2015-08/121270.htm 首先我们来看看ios中事件的产生和传递过程 1.发生触摸事件后,系统会将事件加入到一个由UIApplication管理的队列事件中来 2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会发发送事件给应用程序的主窗口 3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件 4.找到合适的视图控件后,就会调用视图控件的touches方法作为事件…
触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 二.UIResponder UIResponder内部提供了以下方法来处理事件触摸事件- (v…
在ios中,事件UIEvent类来表示,当一个事件发生时,系统会搜集的相关事件信息,创建一个UIEvent对象,最后将该事件转发给应用程序对象(UIApplication).日常生活中,主要有三种类型的事件:触摸事件,加速计事件以及远程遥控事件.下面是官方的一张图片: 当用户通过以上方式触发一个事件时,会将相应的事件对象添加到UIApplication的事件队列中.UIApplication会循环的从队列中拿出第一个事件来处理.首先将该事件分发给UIApplication 的主窗口对象(KeyW…
在iOS 开发中,常见的事件有三种类型,分别是: (1)触摸事件:平常手指在屏幕上滑动,产生的事件都是触摸事件 (2)加速计事件:微信的摇一摇就是典型的加速计事件 (3)远程控制事件:耳机控制歌曲上一首.下一首.暂停就是远程控制事件的应用. 在触摸事件中,通常情况下,点击哪个控件,哪个控件就会产生反应.比如说,点击确定按钮,确定按钮会响应该事件,点击取消按钮,取消按钮会响应该事件.那么,系统是如何决定哪一个视图(控件)来响应该事件呢? 当发生触摸事件后,系统会将该事件加入到一个由 UIAppli…
总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -> 3蓝色 -> 4黄色. 二,找到4黄色后,再从下到上遍历响应者链条:4黄色 -> 3蓝色 -> 2橙色  -> 1白色  -> UIWindow  -> UIApplication 1)如果4黄色实现了touches...这些函数(具体下面第二条)且没有调用 sup…
用户在使用app的时候,会产生各样的事件.在iOS中的事件可以分为三种 触摸事件(Touch Event) 加速计事件(Accelerometer Event) 远程控制事件(Remote Control event) 在iOS中,并不是所有的对象都能处理事件,直接或者间接继承UIResponder的对象(UIApplication. UIViewController.UIWindow和所有继承自UIView的UIKit类)才能对事件进行响应,我们称呼这些为“响应者对象”: 在UIRecpond…
一.触摸事件传递原理 (1)大的方向是:从父控件传递给子控件. --父控件会先检查自己能否接受事件的处理 --然后再看看触摸在不在自己的范围内 --假设在的话,就遍历子控件.看看有没有合适的子控件能够处理 --假设子控件都不适合,那么久父控件自己来处理. 还有个大的原则是,事件通常是从UIApplication >>> UIWindow >>> 各个控件 二.响应者链条 --找到这个控件后,看这个控件有没有实现touches的began.moved和ended事件. -…