Core Animation Advanced 学习笔记

Core Animation 是个复合引擎,它的职责是尽可能的组合屏幕上的不同的可视内容(图层数)。

这个内容是被分解成独立的图层,存储再一个叫做图层树的体系中。

这个树形成了UIKit以及再iOS应用中你所见到的一切内容。

CALayer功能: 

阴影,圆角,带颜色的边框

3D变换

非矩形范围

透明遮罩

多级非线性动画

CALayer Content属性

layer.content  这个属性的类型被定义为id,意味着它可以是任何类型的对象】

layer.contents =(__bridge id)image.CGImage;

contentGravity 

类似UIView中UIViewContentMode属性

contentsScale 

属性定义了寄宿图的像素尺寸和视图大小的比例,默认情况下它是一个值为1.0的浮点数

如果只是单纯地想放大图层的contents图片,你可以通过使用图层的transform和affineTransform属性来达到这个目的

self.layerView.layer.contentsScale = image.scale;

maskToBounds

UIView有一个叫做clipsToBounds的属性可以用来决定是否显示超出边界的内容,CALayer对应的属性叫做masksToBounds

contentsRect 

允许在图层边框里显示寄宿图的一个子域。这涉及到图片是如何显示和拉伸

contentsCenter

是一个CGRect,它定义了一个固定的边框和一个在图层上可拉伸的区域

 记住当对图层做变换的时候,比如旋转或者缩放,frame实际上代表了覆盖在图层旋转之后的整个轴对齐的矩形区域,也就是说frame的宽高可能和bounds的宽高不再一致了

CGAffineTransform用于图层旋转,摆放或者扭曲

CATransform3D将扁平物体转换成三维空间

你可能感兴趣的:(Core Animation Advanced 学习笔记)