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将扁平物体转换成三维空间