美文网首页
UI视图事件传递、视图响应

UI视图事件传递、视图响应

作者: Oh丶Really | 来源:发表于2020-05-19 17:29 被阅读0次

    1、UIView和CALayer关系

    UIView 包含 layer 和 backgroundColor 两个属性。

    layer:是 CALayer 的对象,包含 contents 用来显示视图,contents 中 backing store 具体负责展示,backing store实际是 bit-map 属性的位图。

    backgroundColor:实际是对 CALayer 同名属性方法的一个包装

    总结:

    UIView 为 CALayer 提供内容,以及负责处理触摸等事件,参与响应链。

    CALayer 负责显示内容 contents

    这样体现了单一职责的设计原则。UIView 单一负责事件处理,CALayer 单一负责内容。

    2、事件传递

    // 返回响应的视图

    - (UIView*)hitTest:(CGPoint)point  withEvent:(UIEvent*)event

    // 返回事件是否在相应位置

    - (BOOL)pointInside:(CGPoint)poin  twithEvent:(UIEvent*)event

    系统 hitTest 方法的实现

    3、视图响应

    若最终 UIApplicationDelegate 未处理事件,则忽略掉事件,不会崩溃

    相关文章

      网友评论

          本文标题:UI视图事件传递、视图响应

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