美文网首页
3.UIView与CALayer有什么区别?

3.UIView与CALayer有什么区别?

作者: MT_suny | 来源:发表于2021-01-06 14:29 被阅读0次
    • UIView是iOS系统中界面元素的基础,所有界面元素都要继承于UIView.其本身完全是有CoreAnmation来实现的.它的真正绘图部分是由CALayer类来管理的.UIView本身更像是一个CALayer的管理器.访问它的根绘图和根坐标有关的属性.

    • UIView有个重要属性layer,可以返回它的主CALayer实例.

    • UIViewCALayer类似UIView的子View树形结构,也可以向它的layer上添加子layer,来完成某些特殊的表示.即CALayer层是可以嵌套的.

    • UIViewlayer树形在系统内部,被维护着三份copy.分别是逻辑树,这里是代码可以操纵的.动画树,是一个中间层,系统就在这一层上更改属性,进行各种渲染操作.显示树,其内容就是当前正被显示在屏幕上的内容.

    • 动画的运作:对UIViewsubLayer(非主Layer)属性进行更改,系统将自定进行动画生成,动画持续时间的缺省值似乎是0.5秒.

    • 坐标系统:CALayer的坐标系统对比UIView多了一个anchorPoint属性,使用CGPoint结构表示,值域是0~1,是个比例值.这个点是各种图形变换的坐标原点,同时会更改layerposition的位置,它的缺省值是{0.5 , 0.5},即在layer的中央.

    • 渲染: 当更新层,改变不能立即显示在屏幕上.当前所有的层都准备好时,可以调用setNeedDisplay方法来重绘显示.

    • 变换:要在一个层中添加一个3D或者仿射变换,可以分别设置层的transformaffineTransform属性

    • 变形 :Quartz Core的渲染能力,使二维图像可以被自由操作,就好像是三维的.图像可以在一个三维坐标系中可以任意角度被旋转,缩放和倾斜.CATransform3D的一套方法提供一些魔术般的变化效果.

    相关文章

      网友评论

          本文标题:3.UIView与CALayer有什么区别?

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