• iOS事件的传递


    一,事件的传递

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

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

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

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

      

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

    二,事件链

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

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

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

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

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

      谁是父事件对象?

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

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

      

  • 相关阅读:
    【转】给ExtJS的Grid增加两行tbar
    AWK使用手册
    SED单行脚本快速参考(Unix 流编辑器)
    Linux的用户和用户组管理
    Linux下中文man帮助安装。
    关于TLBB 客户端UI界面修改几个定义了解
    正则表达式30分钟入门教程
    VimDiff技巧
    CentOS 更换网易源
    Mysql数据库搭建Linux
  • 原文地址:https://www.cnblogs.com/iOS771722918/p/4858687.html
Copyright © 2020-2023  润新知