响应者链条(事件的传递)(复习笔记)

1、如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件。

2、在以下几种情况下,控件是不能接收触摸事件

  1.不接收用户交换  userInteractionEnable= NO;

  2.隐藏 hiden = YES;

  3.透明 alpha = 0.0 ~ 0.01;

提示:UIImageView的userInteractionEnable默认为NO,因此UIImageView以及他的子控件默认不接收触摸事件。

3、事件的完整处理过程

  1.先将事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件(假如点击了绿色的) (如上图:白-->红 --->绿)

  2.调用最合适的控件 touches....(begin.. moving ... end... )方法

  3.如果调用了 [super touches...]方法,则事件将会顺着响应者链条往回传递,传递给上一个响应者(能处理事件的控件)

  4.接着就会调用上一个响应者的  touches....(begin.. moving ... end... )方法

  5.如果这个响应者又调用了  [super touches...]方法,则继续往上传,知道那个没有调用  [super touches...]方法的控件时候才停止

4、上一个响应者

  1.如果当前这个view是控制器的view,那么控制器就是上一个响应者

  2.如果当前这个view不是控制器的view,那么父控件就是上一个响应者。

解释:比如点击了蓝色,如果蓝色的时控制器,则此时蓝色就是上一个响应者,如果蓝色的view不是控制器的view,此时的上一个响应者是红色(红色为蓝色的父控件)

5、什么是响应者链条

  1.响应者链条是由很多响应者对象构成的链条

链条的作用:当点击了某一个view的时候,view将这一个事件处理完毕,还有可能会将这个事件传递给他的上一个响应者,还可能往上继续传递

时间: 2024-10-26 03:22:19

响应者链条(事件的传递)(复习笔记)的相关文章

事件的产生与传递 及 响应者链条

事件的产生与传递 正如我上图所总结的: 1.左边部分:我总结了事件传递的流程 2.中间部分:举例说明了实际情况 3.右边部分:一个View不能接受事件的情况 响应者链条 左边的情况,接收事件的initial view如果不能处理该事件并且她不是顶层的View,则事件会往它的父View进行传递.initial view的父View获取事件后如果仍不能处理,则继续往上传递,循环这个过程.如果顶层的View还是不能处理这个事件的话,则会将事件传递给它们的ViewController,如果ViewCon

iOS开发中的事件处理(二)-事件传递,响应者链条-

转载请注明出处:http://blog.csdn.net/whjForWork/article/details/44926833 事件处理的事件传递 简介: 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件 队列中,UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow) UIView不接受触摸事件的三种情况: 不接收用户交互 userInteractionEnabled = NO

【学习笔记】响应者链条

自学iOS有一两个月了,一直没有好好整理学习笔记,打算今天开始慢慢补上,就当是复习和补缺补漏吧. iOS的事件大致分为三种:触摸事件.加速计事件.远程控制事件 首先要理解以下几个概念: 一.响应者对象: 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象”. UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件. 二.UIRespon

IOS开发——UI进阶篇(十二)事件处理,触摸事件,UITouch,UIEvent,响应者链条,手势识别

触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 二.UIResponder UIResponder内部提供了以下方法来处理事件触摸事件- (v

IOS开发—事件处理,触摸事件,UITouch,UIEvent,响应者链条,手势识别

触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 二.UIResponder UIResponder内部提供了以下方法来处理事件触摸事件- (v

响应者链条

响应时间的完整处理过程: 1.先讲事件对象由上往下传递(由父控件传递给子控件),找到最合适的控件来处理这个事件 2.调用最合适控件的touches....方法 3.如果调用了[super touches...];就会将事件顺着响应者链条往上传递,传递给上一个响应者 4.接着就会调用上一个响应者touches...方法 什么事响应者链条? 1.响应者链条是由多个响应者对象链接起来的链条(什么是响应者对象:能处理事件的对象) 2.利用响应者链条,能让多个控件处理同一个触摸事件 3.怎么利用链条往上传

简析响应者链条

谈到响应者链条,首先要有触摸事件和响应者.触摸事件就不解释了,那么什么是响应者? 一.响应者 在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象”.例如:UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件. 二.事件的传递 有了触摸事件和响应者,就会产生响应者链条.发生触摸事件后,系统会将该事件加入到一个由UIApplication

史上最详细的iOS之事件的传递和响应机制

前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) (一)iOS中的事件 iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件这里我们只讨论iOS中的

事件的传递和响应机制(全)

前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) (一)iOS中的事件 iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件 这里我们只讨论iOS中

iOS开发--响应者链条

简单来说就是 :一级一级的找到响应的视图,如果没有就传给UIWindow实例和UIApplication实例,要是他们也处理不了,就丢弃这次事件... 对于IOS设备用户来说,他们操作设备的方式主要有三种:触摸屏幕.晃动设备.通过遥控设施控制设备.对应的事件类型有以下三种: 1.触屏事件(Touch Event) 2.运动事件(Motion Event) 3.远端控制事件(Remote-Control Event) 响应者链条概念: iOS系统检测到手指触摸(Touch)操作时会将其打包成一个U