响应者链和Hit-Test 机制】的更多相关文章

原文来自:http://www.cnblogs.com/zhw511006/p/3517248.html 响应者链(Responder Chain) 通常,一个iOS应用中,在一块屏幕上通常有很多的UI控件,也就是有很多的View,那么当一个事件发生时,如何来确定是哪个View响应了这个事件呢,接下来我们就一起来看看. 寻找hit-test view 什么是hit-test view呢?简单来说就是你触发事件所在的那个View,寻找hit-test view的过程就叫做Hit-Testing.那…
概念: 响应者 : 对用户交互动作事件进行响应的对象.响应者链:成为处理事件的响应者的先后顺序链. 1.Hit-Test 机制 当用户触摸(Touch)屏幕进行交互时,系统首先要找到响应者(Responder).系统检测到手指触摸(Touch)操作时,将Touch 以UIEvent的方式加入UIApplication事件队列中.UIApplication从事件队列中取出最新的触摸事件进行分发传递到UIWindow进行处理.UIWindow 会通过hitTest:withEvent:方法寻找触碰点…
1.简介  测试代码库:https://github.com/xufeng79x/EventHandler 响应者链是系统寻找事件相应者的一个路径,他是同touch事件的Hit-testing过程具有同等地位的事件寻主过程. 此路径开始于firstResponder结束于单例application.事件首先会让firstResponder对象去处理,如果他无法处理则会向其nextResponder对象转发事件 当所有对象都无法处理事件后将最后转发到application处并最终忽略该事件. 2.…
在开发中,我们经常看到有按钮等的点击,会出现响应事件.按钮->view->ViewController->UIWindow->UIApplication,这就形成了一个响应链.本篇将讲述响应链的具体底层实现,大约花费10-15分钟左右,欢迎点评!!! 一.知识 继承UIResponder的对象,我们称之为响应者对象.我们常用到的UIApplication.UIWindow.UIViewController以及所有继承UIView的UIKit都会根继承于UIResponder. UI…
当发生事件响应的时候,必须知道由谁来响应事件.在iOS中,由响应链来对事件进行响应,所有的事件响应的类都是继承于UIResponder的子类,响应链是一个由不同对象组成的层次结构,其中每个对象将依次获得响应事件消息的机会 发生触摸事件后,系统将事件加入到由UIApplication管理的事件 队列  好处:遵循第一响应原则,总会优先处理队列中排在最前面的事件.(栈是先进后出 不符合业务逻辑) (1)事件传递(链) 1.传递链中时没有controller的,因为controller本身不具有大小的…
Cocoa Touch事件处理流程--响应者链 作者:wangzz 原文地址:http://blog.csdn.net/wzzvictory/article/details/9264335 转载请注明出处 如果觉得文章对你有所帮助,请通过留言或关注微信公众帐号wangzzstrive来支持我,谢谢!   一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(M…
关于响应者链部分的基础内容 参考http://www.cnblogs.com/wendingding/p/3795171.html 这里我要说明的是 关于- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event; 这个方法的使用 响应者链中的响应过程如下: UIApplication -> Window ->递归找到处理事件的控件->控件调用touches方法 -> 判断是否实现了touch 方法 ->如果没有…
一.事件分类 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Motion Event) 3.远端控制事件(Remote-Control Event) 今天以触屏事件(Touch Event)为例,来说明在Cocoa Touch框架中,事件的处理流程.首先不得不先介绍响应者链这个概念: 二.响应者链(Responder Chain) 先来说说响应者对象(Respond…
这篇文章想跟大家分享的主旨是iOS捕获用户事件的各种情况,以及内部封装的一些特殊事件. 我们先从UIButton谈起,UIButton大家使用的太多了,他特殊的地方就在于其内置的普通Default/高亮Highlighted/选择Selected/可用Enable的几个状态(UIControlState).其次就是SDK内部已经为我们封装了以下用户事件: 最常用的莫过于Touch Up Inside这个事件了,他代表:  用户在按钮区域内按下,并且也在按钮区域内松开. 关键点:按下并且松开 才能…
##DAY4  事件的基本概念.触摸的基本概念.响应者链.手势 #pragma mark ———————事件的基本概念 ——————————— 事件的基本概念: 1)事件是当用户的手指触击屏幕及在屏幕上移动时,系统不断发送给应用程序的对象. 2)系统将事件按照特定的路径传递给可以对其进行处理的对象. 3)在iOS中,一个UITouch对象表示一个触摸,一个UIEvent对象表示一个事件.事件对象中包含与当前多点触摸序列相对应的所有触摸对象,还可以提供与特定视图或窗口相关联的触摸对象. 事件类型:…