CALayer

作者: yaqiong | 来源:发表于2016-07-22 14:24 被阅读59次

CALayer继承自NSObject   遵守协议NSCoding、CAMediaTiming。属于QuartzCore框架。iOS 2.0后可用。

1.CALayer类用于管理基于图像的内容,可以这些内容上进行动画。layer通常用于提供视图的后台存储,但也可以不使用视图只适用图层来显示内容。layer的主要功能是管理你提供的视图内容,但它本身也有一些视觉属性可供设置,比如背景色、边框、阴影。除了管理视图内容,layer同时也包含了一些自身内容相关的几何信息,比如position/size/transform,这些用于使内容显示在屏幕上。可以修改layer的属性来初始化图层上的内容或几何动画。一个layer对象封装了时长和频率,它遵守CAMediaTiming协议,这个协议定义了layer的定时信息。

如果一个layer对象是在创建view的时候创建的,那么这个view一般情况下默认是这个layer的代理,而且不能改变这一关系。如果是手动创建的layer,你可以指定一个代理对象,再用这个代理动态地显示该layer的内容并执行其他代理方法。一个layer也有一个布局管理对象(layout manager object)来逐一管理layer子视图的布局

每个 UIView 内部都有一个 CALayer 来提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供。两者都有树状层级结构,layer 内部有 SubLayers,View 内部有 SubViews.但是 Layer 比 View 多了个AnchorPoint

在 View显示的时候,UIView 做为 Layer 的 CALayerDelegate,View 的显示内容由内部的 CALayer 的 display

CALayer 是默认修改属性支持隐式动画的,在给 UIView 的 Layer 做动画的时候,View 作为 Layer 的代理,Layer 通过 actionForLayer:forKey:向 View请求相应的 action(动画行为)

layer 内部维护着三分 layer tree,分别是 presentLayer Tree(动画树),modeLayer Tree(模型树), Render Tree (渲染树),在做 iOS动画的时候,我们修改动画的属性,在动画的其实是 Layer 的 presentLayer的属性值,而最终展示在界面上的其实是提供 View的modelLayer

两者最明显的区别是 View可以接受并处理事件,而 Layer 不可以

相关文章

  • 动画 (1) ----- CALayer

    CALayer 和 UIView 联系CALayer的相关属性CALayer之隐式动画 一. CALayer 和 ...

  • CALayer与UIView的区别

    CALayer与UIView的区别 基础 CALayer的定义 CALayer的基础 CALayer和UIView...

  • UIView和CALayer

    1. UIView和CALayer CALayer负责显示内容contents UIView为CALayer提供现...

  • 设置view任意边框border

    CALayer *bottomBorder = [CALayer layer]; bottomBorder.f...

  • CALayer 简介

    CALayer1-简介CALayer2-创建新的层 CALayer3-层的属性 CALayer4-自定义层 CAL...

  • CALyer介绍

    CALayer1-简介CALayer2-创建新的层CALayer3-层的属性CALayer4-自定义层 注意点 第...

  • iOS-view圆角与阴影并存

    CALayer *subLayer = [CALayer layer];CGRect fixframe = vie...

  • CALayer(一)

    CALayer属性 view和layer的关系 CALayer属性表如下 CALayer和UIView的区别 1....

  • UIView和CALayer

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

  • 问题汇总

    1、UIView和CALayer区别UIView和CALayer的区别.UIView相对于CAlayer来说就多了...

网友评论

    本文标题:CALayer

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