CALayer-CAEmitterLayer(粒子图层)
CAEmitterLayer
能够显示粒子效果通过Core Animation,而粒子是通过CAEmitterCell
来创建的,这些粒子被绘制在图层的背景上方
指定的粒子属性
emitterCells
var emitterCells: [CAEmitterCell]?
所有在数组中的粒子都会被随机的绘制在图层上
粒子几何属性
renderModel
var renderMode: String
控制粒子的渲染模式,(比如是否粒子重叠加重色彩)默认值是kCAEmitterLayerUnordered
.
let kCAEmitterLayerUnordered: String
无序随机的let kCAEmitterLayerOldestFirst: String
最新的在上层出现let kCAEmitterLayerOldestLast: String
最新的在下层出现let kCAEmitterLayerBackToFront: String
由下层向上层涌动let kCAEmitterLayerAdditive: String
叠加显示
emitterPosition
var emitterPosition: CGPoint
在粒子图层上粒子的发射点(支持隐式动画)
emitterShape
var emitterShape: String
粒子发射点图形形状
let kCAEmitterLayerPoint: String
点let kCAEmitterLayerLine: String
线形let kCAEmitterLayerRectangle: String
矩形let kCAEmitterLayerCuboid: String
长方体let kCAEmitterLayerCircle: String
圆形let kCAEmitterLayerSphere: String
球体
emitterZPosition
var emitterZPosition: CGFloat
粒子发射器的z轴中心,这个需要结合emitterSize
和emitterDepth
来使用,主要是用来设置emitterShape
的.默认值是0
emitterDepth
var emitterDepth: CGFloat
粒子发射器的深度,也就是y轴的高emitterZPosition
就是这个Z轴的中心
emitterSize
** var emitterSize: CGSize
**
这个就是粒子发射器的shape的大小,控制emitterShape
的大小
emitterMode
var emitterModel: String
粒子发射器的模式
let kCAEmitterLayerPoints: String
let kCAEmitterLayerOutline: String
let kCAEmitterLayerSurface: String
let kCAEmitterLayerVolume: String
CAEmitterCell的基础属性
scale
var scale: Float
设置粒子发射器的生成粒子的初始缩放比例
speed
var speed: UInt32
粒子发射器的粒子发射速度
spin
var spin: CGFloat
设置粒子的自旋速度,数值越大旋转越快
velocity
var velocity: Float
设置粒子的移动速度(支持隐式动画)默认值是1.0
birthRate
var birthRate: Float
每秒生成的粒子数量,默认值是1(支持隐式动画)
lifetime
var lifetime: Float
设置粒子的生存时间(支持隐式动画)默认是1.0
其实用起来比较简单,所以先看一个例子,用起来好晃眼~~~
1 | // |