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

    一,事件的传递

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

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

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

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

      

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

    二,事件链

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

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

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

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

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

      谁是父事件对象?

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

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

      

  • 相关阅读:
    Socket 之 同步以及异步通信
    Socket 之 c#实现Socket网络编程
    Socket 之 API函数介绍
    Socket 之 原理与编程基础
    C# 之 user32函数库
    WinServer 之 访问同网段服务器 或 同一服务器多虚拟机间的访问
    annex-b格式
    FLV文件格式解析
    PHP5中的stdClass
    web服务器【apache/nginx] 关闭目录的浏览权限
  • 原文地址:https://www.cnblogs.com/iOS771722918/p/4858687.html
Copyright © 2011-2022 走看看