IOSEventHandle.docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
IOSEventHandle

IOS事件处理 概述 事件 一个事件即由硬件捕捉并产生的一个表示用户操作设备的对象并发送给IOS——例如:一个手指点击屏幕或摇动设备。许多event都是UIKit框架中UIEvent类的实例。UIEvent对象可能封装了用户事件所关联的状态, 像关联的点击。UIEvent对象同时也记录了事件所产生的时刻。当一个用户事件发生时——例如,当手指点击屏幕并在其上移动——IOS连续发送事件对象给应用程序进行处理。 UIKit当前可识别三种类型的事件:点击事件,摇动事件及远程控制事件。UIEvent类对其定义了enum常量: typedef enum { UIEventTypeTouches, UIEventTypeMotion, UIEventTypeRemoteControl } UIEventType; typedef enum { UIEventSubtypeNone = 0, UIEventSubtypeMotionShake = 1, UIEventSubtypeRemoteControlPlay = 100, UIEventSubtypeRemoteControlPause = 101, UIEventSubtypeRemoteControlStop = 102, UIEventSubtypeRemoteControlTogglePlayPause = 103, UIEventSubtypeRemoteControlNextTrack = 104, UIEventSubtypeRemoteControlPreviousTrack = 105, UIEventSubtypeRemoteControlBeginSeekingBackward = 106, UIEventSubtypeRemoteControlEndSeekingBackward = 107, UIEventSubtypeRemoteControlBeginSeekingForward = 108, UIEventSubtypeRemoteControlEndSeekingForward = 109 } UIEventSubtype; 每个事件都有其对应的事件类型和子事件类型,它们可以由UIEvent对象的type和subtype属性进行访问。事件类型包括点击事件,摇动事件及远程控制事件。在IOS3.0中,包括了摇动子事件类型(UIEventSubtypeMotionShake)及多种远程控制子事件类型;点击事件所对应的子事件类型为UIEventSubtypeNone。 你不应该在你代码中retain一个UIEvent对象。如果你需要保留一个事件对象的当前状态为以后进行处理,你应该通过合适的方法(使用实例变量或字典对象)拷贝或保存状态值。 事件传递 从事件发生到其处理的对象,传递要经过相当长及特殊的一段过程。当用户点击设备屏幕时,IOS捕捉到一系列的触摸,将其打包到UIEvent对象中并放置到应用程序活动事件队列中。如果系统检测到摇动设置为一个有效的移动事件,则也将其打包并放置到应用程序活动事件队列中。单例UIApplication对象管理应用程序,从事件队列中取出最前面的事件并将其分发以便处理。通常,其发送事件给应用程序的主窗口——即聚焦于用户交互的窗口——窗口对象代表窗口再发送事件给初始对象进行处理。初始对象对于点击事件和摇动事件是不相同的。 点击事件。窗口对象使用hit-testing及响应者链表去找到对该事件响应的视图。在hit-testing中,窗口找到视图继承树中最上层的视图并调用hitTest:withEvent:方法;该方法递归调用视图继承树中每个视图的pointInSide:withEvent:方法并在其返回true后,从该视图开始沿着继承树向下,直到找到一个点击事件在其范围之内的子视图。该子视图即为hit-test视图。 如果该hit-test视图无法处理该事件,则事件沿着响应者链表进行传递直至找到能处理该事件的视图。一个点击对象在其生命周期中一直与hit-test视图相关联,即使点击对象移动到一样该视图之外(?)。 摇动及远程控制事件。窗口对象发送每个摇动及远程控制事件给首响应者进行处理。 尽管hit-test视图和首响应者通常是同一个视图对象,但它们并不总是相同。 UIApplication对象及每个UIWindow对象在sendEvent:方法中进行事件传递,因为这些方法是从应用程序传递来事件的汇集点,所以你可以继承UIApplication或UIWindow并重载sendEvent:方法来监控事件(只有少量的应用程序需要此实现)。如果你重载了该方法

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档