zoukankan      html  css  js  c++  java
  • iOS事件的传递

    一,事件的传递

      UIApplication-----传递事件-----"被触摸的UIview".理解红色的文字很重要,即使被直接触摸,也不一定在当前视图处理事件.要知理由,请看下文解说.

      如果父控件不能接收触摸事件,那么子控件就不可能接收到触摸事件.

      那么系统是怎么找到是哪个视图来处理当前的触摸事件呢?

        从UIApplication出发,一个一个的视图往下找,判断当前视图是否能接收触摸事件.然后在判断触摸点是否发生在自己的身上.一直重复.

      

      特别注意:事件的传递过程中,是不会处理事件的.只是一个传递的过程.

    二,事件链

      通过上面的分析,这里即将引出一个事件链的概念.

      事件链的理解,正好与事件的传递相反.在找到"最终""被触摸视图UIView"的情况下.还要往上寻找,谁能处理触摸事件.

      如果当前的视图没有处理触摸事件的能力(没有实现方法),那就会一直往上寻找.如果找到了,那么就会执行这个触摸事件.如果调用了"super",那么还会往上寻找,否者终止.

      (自学一下,控制器事件处理吧)

      特别注意:A视图,B视图,C视图.如果B视图没有触摸事件的能力,但是在C视图中调用了"super".那么将有A,C视图来处理这个触摸事件.

      谁是父事件对象?

      1,如果这个视图是控制器的视图,那么这个视图的父事件对象是控制器.

      2,如果这个视图不是控制器的视图,那么这个视图的父事件对象是父视图.

      

  • 相关阅读:
    P3302 [SDOI2013]森林
    P2542 [AHOI2005] 航线规划
    P5795 [THUSC2015]异或运算
    P3320 [SDOI2015]寻宝游戏
    P1963 [NOI2009] 变换序列
    一月练习日志
    计算几何全家桶
    bzoj1076: [SCOI2008]奖励关(期望dp+状压dp)
    bzoj3450 Easy(概率期望dp)
    Eclipse配置 自动补全功能 快捷键 alt+/
  • 原文地址:https://www.cnblogs.com/iOS771722918/p/4858687.html
Copyright © 2011-2022 走看看