CAEmitterLayer
CAEmitterLayer是CALayer的子类,CAEmitterLayer是用于实现基于Core Animation的粒子发生器系统,可以用来做一些酷炫的效果,而CAEmitterCell就是CAEmitterLayer中发射的具体的粒子了。比如红包雨,下雨的效果都可以用CAEmitterLayer效果实现。
CAEmitterLayer属性
CGSize emitterSize 发射源的尺寸大小,动画显示的范围
CAEmitterLayerEmitterShape emitterShape
/* 发射源的形状
kCAEmitterLayerPoint 点的形状,粒子从一个点发出
kCAEmitterLayerLine 线的形状,粒子从一条线发出
kCAEmitterLayerRectangle 矩形形状,粒子从一个矩形中发出
kCAEmitterLayerCuboid 立方体形状,这里要生效的话需要设置z方向的数据,如果不设置就同矩形状
kCAEmitterLayerCircle 圆形,粒子会在圆形范围发射
kCAEmitterLayerSphere 立体圆形(3D),三维的圆形,同样需要设置z方向数据,不设置则通二维一样
*/
CAEmitterLayerEmitterMode emitterMode
/* 发射模式
kCAEmitterLayerPoints 从发射器中发出
kCAEmitterLayerOutline 从发射器边缘发出
kCAEmitterLayerSurface 从发射器表面发出
kCAEmitterLayerVolume 相对于3D形状的“球体内”或“立方体内”发射,从发射器中点发出
*/
CAEmitterLayerRenderMode renderMode
/*显示模式
kCAEmitterLayerUnordered 粒子是无序出现的,多个发射源将混合
kCAEmitterLayerOldestFirst 声明久的粒子会被渲染在最上层
kCAEmitterLayerOldestLast 刚开始的粒子会被渲染在最上层
kCAEmitterLayerBackToFront 粒子的渲染按照Z轴的前后顺序进行
kCAEmitterLayerAdditive 这种模式会进行粒子混合
*/
CGPoint emitterPosition 粒子发射形状的中心点
NSArray<CAEmitterCell *> *emitterCells 具体发射的粒子
CAEmitterCell
+ (instancetype)emitterCell 初始化方法
+ (nullable id)defaultValueForKey:(NSString *)key;//获取某一属性的值
- (BOOL)shouldArchiveValueForKey:(NSString *)key;//返回指定的属性值是否可以归档。基本上不用
@property(nullable, copy) NSString *name;//设置发射粒子的名称
@property(getter=isEnabled) BOOL enabled;//是否允许发射粒子渲染
@property float birthRate;//发射粒子的产生率,默认0
@property float lifetime;//发射粒子的生命周期,以秒为单位。默认0
@property float lifetimeRange;//发射粒子的生命周期范围,以秒为单位。默认0
@property CGFloat emissionLatitude;//发射粒子的指定纬度,纬度角代表了在x-z轴平面坐标系中与x轴之间的夹角,也就是粒子在Z轴方向的发射角度,默认0
@property CGFloat emissionLongitude;//发射粒子的指定经度,经度角代表了在x-y轴平面坐标系中与x轴之间的夹角,也就是粒子在xy平面的发射角度,默认0:
@property CGFloat emissionRange;//发射粒子角度范围,默认0,以锥形分布开的发射角度。角度用弧度制。粒子均匀分布在这个锥形范围内;
@property CGFloat velocity;//发射粒子的速度 ,默认0
@property CGFloat velocityRange;//发射粒子的速度范围 ,默认0
@property CGFloat xAcceleration;//发射粒子x方向的加速度,默认0
@property CGFloat yAcceleration;//发射粒子y方向的加速度,默0
@property CGFloat zAcceleration;//发射粒子z方向的加速度,默认0
@property CGFloat scale;//发射粒子的缩放系数,默认1
@property CGFloat scaleRange;//发射粒子的缩放系数范围,默认0
@property CGFloat scaleSpeed;//发射粒子的缩放速度,默认0
@property CGFloat spin;//发射粒子的平均旋转速度,默认是0
@property CGFloat spinRange;//发射粒子的平均旋转速度范围,默认是0
@property(nullable) CGColorRef color;//发射粒子的颜色,默认白色
@property float redRange;//发射粒子红色的范围,默认0
@property float greenRange;//发射粒子绿色的范围,默认0
@property float blueRange;//发射粒子蓝色的范围,默认0
@property float alphaRange;//发射粒子透明度的范围,默认0
@property float redSpeed;//发射粒子红色的变化速度,默认0
@property float greenSpeed;//发射粒子绿色的变化速度,默认0
@property float blueSpeed;//发射粒子蓝色的变化速度,默认0
@property float alphaSpeed;//发射粒子透明度的变化速度,默认0
@property(nullable, strong) id contents;//发射的渲染粒子的内容,可以设置为一个CGImage的对象
@property CGRect contentsRect;//发射的渲染粒子内容的渲染范围
@property CGFloat contentsScale;//内容的缩放系数
网友评论