码迷,mamicode.com
首页 > 其他好文 > 详细

事件的产生与传递

时间:2015-07-21 01:03:23      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

事件的产生和传递:
 
发生触摸事件以后,系统会将该事件加入到一个由UIApplication管理的事件队列中,
UIApplication会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常先发送事件给应用程序的主窗口(keyWindow)
主窗口会在视图层次机构中找到一个最合适的视图来处理触摸事件,但是这仅仅是事件处理的第一步。找到合适的视图控制器后,就会调用视图控件的touchs方法来做具体的事件处理。
技术分享
 
UIView不接触事件的三种情况:
1.userIteractionEnable = NO; 例如:把3的userIteractionEnable设置为NO,则点击黄色事件 会传递到2,让2处理事件。
2.隐藏 hidden = YES
3.透明 alpha = 0.0~0.01
注:UIImageView的userIteractionEnable的默认就是NO,因此UIImageView以及它的子控件默认是不能接收接触事件的。
父控件隐藏,子控件也会隐藏。
 
 
 
 

响应者链条

 
touches方法的默认做法是将事件顺着响应者链条向上传递,将事件交给上一个响应者进行处理。 
技术分享
 
技术分享
UIEvent:
技术分享
 
 
touches和event参数:
 
技术分享
 
 
UIGestureRecognizer:
技术分享
 
 
手势识别的状态:
 
技术分享
 
 

事件的产生与传递

标签:

原文地址:http://www.cnblogs.com/why-not/p/4663083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!