美文网首页
UIView和CALayer的关系

UIView和CALayer的关系

作者: 深度码农患者 | 来源:发表于2020-02-20 20:10 被阅读0次
  1. UIView主要是对显示内容的管理,而CALayer主要是对显示内容的绘制。
    严格来说,UIView是CALayer的CALayerDelegate,在代理方法内部[CALayerDelegate drawLayer:inContext]中调用UIView的DrawRect方法,从而绘制出UIView的内容。
  2. UIView可以响应事件,Layer不可以。
    UIKit使用UIResponder作为响应对象,来响应系统传递过来的事件并进行处理,UIApplication、UIViewController、UIView和一切从UIView派生出来的UIKit类都直接或者间接继承自UIResponder。而UIResponder中定义了处理各种事件和事件传递的接口。
    而CALayer直接继承自NSObject,并没有响应的处理事件的接口。
  3. 在做iOS动画的时候,修改费RootLayer的属性(譬如位置、背景色等)会产生默认的隐式动画,而修改UIView不会。原因是UIView默认情况下禁止了Layer动画,但是在animation block中重新启用了它们。可以通过动画事务(CATransaction)去关系隐式动画
    任何可动画的CALayer属性改变时,layer都会寻找运行合适的action来实现这个改变,layer向它的delegate发送actionForLayer:ForKey:消息来询问提供一个对应属性变化的action。参考资料
  4. 每个UIVIew内部都有一个CALayer在背后提供内容的绘制和显示,并且UIView的样式和尺寸都由内部的Layer所提供。两者都有树状层级结构,layer内部有subLayers,View内部有SubViews,但是Layer比view多了个AnchorPoint
  5. UIView和CALayer的frame映射及View如何创建CALayer
    一个Layer的frame是由它的anchorPoint、position、bounds、transforms共同决定的,而view的frame只是简单的返回了layer的frame,同样的,View 的center和bounds也是返回Layer的一些属性。参考资料

相关文章

  • 简述CALayer和UIView的关系

    简述CALayer和UIView的关系 答:UIView和CALayer是相互依赖的关系。UIView依赖与cal...

  • UIView和CALayer

    UIView和CALayer和有什么关系 UIview中有个属性layer,是CALayer类型。 CALayer...

  • CALayer和UIView详解

    关于UI的继承关系图: CALayer & UIView 区别 概念 CALayer和UIView的关系 可以说:...

  • iOS界面渲染流程

    前言:关系图 一、UIView 和 CALayer 的区别 ([详解CALayer 和 UIView的区别和联系]...

  • iOS中的UI事件传递&响应

    UIView和CALayer之间的关系和区别 关系 1.UIView中有个属性layer(CALayer类型)和b...

  • CALayer和UIView

    CALayer和UIView 1、为什么要提供UIView和CALayer两个平行的层级关系 1、UIVIew用于...

  • 2019-03-07

    UIView和CALayer关系 UIView继承自UI...

  • CALayer

    •CALayer和UIView的关系 –CALayer负责视图中显示内容和动画 –UIView负责监听和响应事件 ...

  • UI事件传递&响应

    UIView和CALayer之间的关系和区别UIView和CALayer UIView实际上里面有的属性,一个CA...

  • iOS相关题目-OC对象本质是一个结构体

    UIView和CALayer是啥关系?CALayer 是 QuartzCore 中的类 1. 首先UIView(继...

网友评论

      本文标题:UIView和CALayer的关系

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