美文网首页
iOS-知识点

iOS-知识点

作者: 黑色桃芯 | 来源:发表于2017-07-27 12:13 被阅读19次
/**
 事件的产生和传递:
 1、发生触摸事件后,系统会将该事件加入到一个由UIApplication管理的事件队列中
 2、UIApplication 会从事件队列中取出最前面的事件,并将事件分发下去以便处理,通常先发送事件给应用程序的主窗口(keywindow)
 3、主窗口会在 视图层次结构中(比如window上有个view view上又有一个view) 找到最合适的视图(view)来处理触摸事件,这也是整个事件处理过程的第一步
 4、找到合适的视图控件后,就会调用视图控件的touches(touchesBegan等方法)方法来作具体的事件处理
 
 重点:
 注意:控制器也可以响应事件
 触摸事件的传递是从父控件传递到子控件 (如果两个view1和view2同级,都在当前的viewcontroller上,那先找后添加的子控件view2)
 
 传递:UIApplication - UIWindow - UIViewcontroller - UIViewcontroller上面的view - view再传给view上面的imageView,imageView响应事件,并调用touchBegin方法
 响应(响应链):imageView如果没有响应事件,那么顺着响应链找到上一级view,如果view没有响应事件,那么顺着响应链找到上一级(这里即viewController),viewController如果没有响应事件,那么传递给主窗口window,如果还没有响应,就丢弃该事件
 
 总结:传递:有点像父控件传递到子控件  一级一级往下传递
      响应:子控件没响应,就丢给父控件响应  一级一级往上响应
 
 UIView不接收触摸事件的三种情况
 默认UIImageView的userInteractionEnabled = NO 不允许接收触摸事件
 情况1、   userInteractionEnabled = NO
 情况2、   hidden = YES
 情况3、   alpha = 0
 */
  • KVC


    1516249236311.jpg

相关文章

网友评论

      本文标题:iOS-知识点

      本文链接:https://www.haomeiwen.com/subject/rkrzkxtx.html