CAEmitterLayer
CAEmitterLayer
是一个发射、设置动画和渲染粒子系统的图层。
emitterCells
API
@property(copy) NSArray<CAEmitterCell*> *emitterCells;
官方示例
演示了如何设置一个简单的粒子发射器。它使用一个图片当单元内容时,通过将发射器单元的发射范围设置为,粒子将向所有方向发射。
let emitterLayer = CAEmitterLayer()
emitterLayer.emitterPosition = CGPoint(x: 320, y: 320)
let cell = CAEmitterCell()
cell.birthRate = 100
cell.lifetime = 10
cell.velocity = 100
cell.scale = 0.1
cell.emissionRange = CGFloat.pi * 2.0
cell.contents = UIImage(named: "RadialGradient.png")!.cgImage
emitterLayer.emitterCells = [cell]
view.layer.addSublayer(emitterLayer)
emitterSize
发射源的尺寸大小,由CAEmitterCell
实例定义的粒子绘制在图层的尺寸内。
API
@property CGSize emitterSize;
emitterShape
发射源的形状,默认是点的形状,kCAEmitterLayerPoint
.
API
@property(copy) CAEmitterLayerEmitterShape emitterShape;
常量值
kCAEmitterLayerCircle
kCAEmitterLayerCuboid
kCAEmitterLayerLine
kCAEmitterLayerPoint
kCAEmitterLayerRectangle
kCAEmitterLayerSphere
emitterMode
发射过程的模式,默认是 kCAEmitterLayerVolume
API
@property(copy) CAEmitterLayerEmitterMode emitterMode;
枚举值
kCAEmitterLayerOutline
kCAEmitterLayerPoints
kCAEmitterLayerSurface
kCAEmitterLayerVolume
emitterPosition
发射形状的中心点,默认是(0.0,0.0)
.
@property CGPoint emitterPosition;
CAEmitterCell
CAEmitterCell
类继承与NSObject
,是一个抽象类,似于UITableViewCell
,每一种粒子效果都是一种单独的CAEmitterCell
。
-
name
粒子名称
-
birthRate
粒子产生率
-
lifetime
粒子生命周期
-
velocity
粒子速度
-
velocityRange
粒子速度平均量
-
yAcceleration
y方向的加速度分量,默认为0
-
emissionLongitude
指定纬度,纬角度代表了在x-z轴平面坐标系中与x轴之间的夹角,默认0
-
emissionRange
发射角度范围,默认为0,以锥形分布开的发射角度。角度用弧度制。粒子均匀分布在这个锥形范围内。
-
scale
缩放比例,默认是1
-
scaleRange
缩放范围,默认是0
-
scaleSpeed
在生命周期内的缩放速度,默认是0
-
contents
粒子的内容,参照
CALayer的寄宿图
-
color
粒子的颜色
-
redRange
粒子颜色red能改变的范围,默认是0
-
greenRange
粒子颜色blue能改变的范围,默认是0
-
alphaRange
粒子颜色alpha能改变的范围,默认是0
-
blueSpeed
粒子颜色blue在生命周期内的改变速度,默认是0
网友评论