UI开发--响应者链条】的更多相关文章

一.触摸事件处理的详细过程 用户点击屏幕后产生的一个触摸事件,经过一些列的传递过程后,会找到最合适的视图控件来处理这个事件 找到最合适的视图控件后,就会调用控件的touches方法来作具体的事件处理 touchesBegan… touchesMoved… touchedEnded… 这些touches方法的默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理 二.响应过程 一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最…
触摸事件 在用户使用app过程中,会产生各种各样的事件 一.iOS中的事件可以分为3大类型 触摸事件加速计事件远程控制事件 响应者对象在iOS中不是任何对象都能处理事件,只有继承了UIResponder的对象才能接收并处理事件.我们称之为“响应者对象” UIApplication.UIViewController.UIView都继承自UIResponder,因此它们都是响应者对象,都能够接收并处理事件 二.UIResponder UIResponder内部提供了以下方法来处理事件触摸事件- (v…
事件处理的事件传递 简介: 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件 队列中,UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常,先发送事件给应用程序的主窗口(keyWindow) UIView不接受触摸事件的三种情况: 不接收用户交互userInteractionEnabled = NO 隐藏hidden = YES 透明alpha = 0.0 ~ 0.01 提示:UIImageView的userInteraction…
一.触摸事件传递原理 (1)大的方向是:从父控件传递给子控件. --父控件会先检查自己能否接受事件的处理 --然后再看看触摸在不在自己的范围内 --假设在的话,就遍历子控件.看看有没有合适的子控件能够处理 --假设子控件都不适合,那么久父控件自己来处理. 还有个大的原则是,事件通常是从UIApplication >>> UIWindow >>> 各个控件 二.响应者链条 --找到这个控件后,看这个控件有没有实现touches的began.moved和ended事件. -…
总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -> 3蓝色 -> 4黄色. 二,找到4黄色后,再从下到上遍历响应者链条:4黄色 -> 3蓝色 -> 2橙色  -> 1白色  -> UIWindow  -> UIApplication 1)如果4黄色实现了touches...这些函数(具体下面第二条)且没有调用 sup…
事件的产生与传递 事件是如何产生与传递的? 当发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中. UIApplication会从时间队列中取出最前面的时间,并将事件分发下去以便处理.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸时间. 触摸时间的传递是从父控件传递到子控件的,如果一个父控件不能接收事件,那么他里面的子控件也不能接收. 当一个控件不能接收时间时一般有以下几种情况1.不接收用户交互userInteractionEnabled = NO2.当…
总体来说,分2个步骤: 一,从上到下寻找合适的控件来处理这个触摸事件.如下图,如果点击了黄色4,则UIApplication -> UIWindow -> 1白色 -> 2橙色 -> 3蓝色 -> 4黄色. 二,找到4黄色后,再从下到上遍历响应者链条:4黄色 -> 3蓝色 -> 2橙色  -> 1白色  -> UIWindow  -> UIApplication 1)如果4黄色实现了touches...这些函数(具体下面第二条)且没有调用 sup…
在iOS 开发中,常见的事件有三种类型,分别是: (1)触摸事件:平常手指在屏幕上滑动,产生的事件都是触摸事件 (2)加速计事件:微信的摇一摇就是典型的加速计事件 (3)远程控制事件:耳机控制歌曲上一首.下一首.暂停就是远程控制事件的应用. 在触摸事件中,通常情况下,点击哪个控件,哪个控件就会产生反应.比如说,点击确定按钮,确定按钮会响应该事件,点击取消按钮,取消按钮会响应该事件.那么,系统是如何决定哪一个视图(控件)来响应该事件呢? 当发生触摸事件后,系统会将该事件加入到一个由 UIAppli…
一次完整的触摸事件的传递响应的过程 UIAppliction --> UIWiondw -->递归找到最适合处理事件的控件 控件调用touches方法-->判断是否实现touches方法-->没有实现默认会将事件传递给上一个响应者-->找到上一个响应者   1.响应者链条: 由很多响应者链接在一起组合起来的一个链条称之为响应者链条 什么是响应者:继承UIResponder的对象称之为响应者对象  2.默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理 如何…
本文转自:http://www.linuxidc.com/Linux/2015-08/121270.htm 首先我们来看看ios中事件的产生和传递过程 1.发生触摸事件后,系统会将事件加入到一个由UIApplication管理的队列事件中来 2.UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常会发发送事件给应用程序的主窗口 3.主窗口会在视图层次结构中找到一个最合适的视图来处理触摸事件 4.找到合适的视图控件后,就会调用视图控件的touches方法作为事件…