iOS 事件传递及响应过程】的更多相关文章

iOS 事件传递及响应过程 -->>事件到来-->>事件分发 -->>事件响应 事件( Events) 官方文档( Events(iOS)) 是这样描写叙述的: Users manipulate their iOS devices in a number of ways, such as touching the screen or shaking the device. iOS interprets when and how a user is manipulatin…
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view.寻找最合适的view的底层实现.拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 章节顺序正好和事件的时间顺序相反: 事件处理->事件的产生和传递 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层实现) (一)iOS中的事件 iOS中的事件可以分为3…
1.iOS中的事件 iOS中的事件可以分为3大类型: 触摸事件 加速计事件 远程控制事件这里我们只讨论iOS中的触摸事件. 1.1响应者对象(UIResponder) 在iOS中不是任何对象都能处理事件, 只有继承了UIResponder的对象才能接收并处理事件,我们称为响应者对象UIApplication,UIViewController,UIView都继承自UIResponder,因此他们都是响应者对象, 都能够接收并处理事件 UIResponder内部提供了以下方法来处理事件 触摸事件 -…
原文:http://www.cnblogs.com/Quains/p/3369132.html 主要是记录下iOS的界面触摸事件处理机制,然后用一个实例来说明下应用场景. 一.处理机制 界面响应消息机制分两块,(1)首先在视图的层次结构里找到能响应消息的那个视图.(2)然后在找到的视图里处理消息. [关键](1)的过程是从父View到子View查找,而(2)是从找到的那个子View往父View回溯(不一定会往回传递消息). 1.1.寻找响应消息视图的过程可以借用M了个J的一张图来说明. 处理原理…
一.事件响应者链 事件传递和事件响应链 区别 事件的传递和响应的区别: 事件的传递是从上到下(父控件到子控件),事件的响应是从下到上(顺着响应者链条向上传递:子控件到父控件. 引出 当我们手指触摸屏幕的时候,iOS系统是怎么找到对应的图层,并响应手势的呢? 事件的产生 发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中,为什么是队列而不是栈?因为队列的特点是先进先出,先产生的事件先处理才符合常理,所以把事件添加到队列. UIApplication会从事件队列中取…
先总说如下: 1.当手指触摸到屏幕时,会产生UITouch对象和UIEvent对象. 2.这两个对象产生后会被传递到UIApplication管理的一个事件队列中. 3.再有UIApplication会在事件队列中去除排在最前面的事件(有先后顺序),将事件传递到程序的(keyWindow). 4.主窗口在视图层找到合适的视图来处理触摸事件. 5.找到合适的视图控件后就会调用控件的Touch方法. 下面详细介绍每一步: 1.当手指触摸到屏幕时,会产生UITouch对象和UIEvent对象 触摸时间…
http://blog.csdn.net/iefreer/article/details/4754482 本章描述了iPhone操作系统里的事件类型,并解释了如何处理它们.还讨论了怎么在一个应用程序里以及应用程序之间利用UIPasteboard类提供的机制来拷贝和粘贴数据,这是在iPhone OS 3.0中引入的. 事件和事件类型 一个event 是一个代表用户事件的对象-也就是,iPhone OS探测到的用户动作,比如手指触摸或者设备抖动.在Cocoa Touch中,事件是UIEvent 类的…
iOS中加载的时候会先执行main函数 int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 根据main函数的参数加载UIApplication->AppDelegate->UIWindow->UIViewController->superView-&g…
当我们设计app的时候,我们很可能想动态的响应事件.例如,触摸一个拥有许多不同对象的屏幕,你要决定给哪个对象一个响应事件,怎么样对象接收到事件. 当一个用户产生事件发生时(如 点击),UIKit产生一个对象,这个包含要被处理的对象的信息.接着把事件对象放到active app's(一个application对象,负责初始化用户事件路由.从全局管理一个运行的application)事件队列中.对于触摸事件,这个对象是一组触摸,打包放在UIEvent对象.对motion事件而言,事件对象根据你使用框…
UIResponse之事件响应链及其事件传递 我们的App与用户进行交互,基本上是依赖于各种各样的事件.一个视图是一个事件响应者,可以处理点击等事件,而这些事件就是在UIResponder类中定义的. 在UIKit中,UIApplication.UIView.UIViewController这几个类都是直接继承自UIResponder类.另外SpriteKit中的SKNode也是继承自UIResponder类.因此UIKit中的视图.控件.视图控制器,以及我们自定义的视图及视图控制器都有响应事件…