美文网首页
Core Animation——UIView和CALayer的关

Core Animation——UIView和CALayer的关

作者: Yu_Chou | 来源:发表于2019-11-28 14:58 被阅读0次
    概念对比

    UIView和CALayer在概念上有诸多相似之处,比如都可以进行绘制,都是一些矩形块,都会去管理其子视图或者子图层的位置。两者最大的区别就是CALayer不处理用户的交互。

    平行的层级关系

    每一个view都有一个CALayer的图层属性,视图的责任就是创建并管理这个图层(View在创建该layer时会将其delegate指向自己)。当子视图添加或移除时,子视图所关联的图层也要在层级关系中做相同的操作。
    实际在屏幕上所显示和动画的都是layer,view只是对layer的一个封装,在其基础上增加了交互和一些CoreAnimation底层方法的高级接口。

    分离的原因

    UIView和CALayer分开的主要目的是进行职责分离。这样也可以避免一些重复代码,因为MacOS和iOS的交互很大不同所以就有了UIView和NSView,但是其底层都是同一套CoreAnimation,也就是说它们的显示也都是基于CALayer的。

    相关文章

      网友评论

          本文标题:Core Animation——UIView和CALayer的关

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