• 事件的产生与传递


    事件的产生和传递:
     
    发生触摸事件以后,系统会将该事件加入到一个由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:
     
     
    手势识别的状态:
     
     
     
  • 相关阅读:
    zookeeper
    消息中间件介绍
    Java实现动态代理的两种方式
    深入理解Java内存模型
    消息中间件(一)MQ详解及四大MQ比较
    synchronized关键字详解及分析锁升级过程
    JDK1.6的Synchronized底层优化(偏向锁、轻量级锁)
    分布式通信-tcp/ip socket
    技术点
    大众点评 cat
  • 原文地址:https://www.cnblogs.com/why-not/p/4663083.html
Copyright © 2020-2023  润新知