CAReplicatorLayer
CAReplicatorLayer目的是高效生成许多相似的图层。它会绘制一个或多个图层,并在每个复制体上应用不同的变换。
instanceCount属性指定了图层需要重复多少次。instanceTransform指定了一个CATransform3D变换。
变换时逐步增加的,每个实例都是相对于前一个实例布局。这就是为什么这些复制体最终不会出现在同一位置上。
反射
使用CAReplicatorLayer并应用一个负比例变换于一个复制图层,就可以创建指定视图内容的镜像图片,这样就创建了一个实时的反射效果。
CAEmitterLayer
CAEmitterLayer是一个高性能的粒子引擎,被用来创建实时粒子动画如:烟雾,火,雨等效果。CAEmitterLayer看上去像是许多CAEmitterCell的容器,这些CAEmitterCell定义了一个粒子效果。将会为不同的粒子效果定义一个或多个CAEmitterCell作为模版,同时CAEmitterLayer负责基于这些模版实例化一个粒子流。一个CAEmitterCell类似于一个CALayer,它有一个contents属性可以定义为一个CGImage。
CAEAGLLayer
OpenGL提供了CoreAnimation的基础,它是底层的c接口。OpenGL没有对象或是图层的继承概念。它只是简单的处理三角形。OpenGL中所有东西都是3D空间中有颜色和纹理的三角形。用起来非常强大和复杂。
iOS5中,苹果引入了一个新的框架叫做GLKit,它去掉了一些设置OpenGL的复杂性,提供了一个叫做CLKView的UIView的子类,帮你处理大部分的设置和绘制工作。前提是各种各样的OpenGL绘图缓冲的底层可配置项仍然需要CAEAGLLayer完成,它是CALayer的一个子类,用来显示任意的OpenGL图形。
网友评论