iOS之CAEmitterLayer详解
2015-11-11 14:55
316 查看
CAEmitterLayer提供了粒子系统的核心动画,笔者亲手写了个例子感受了一下,功能还是蛮强大的,理解了其中的属性相信能做出很炫的东西,接下来我们就开始详细的了解CAEmitterLayer,直接上一个雪花飘落的代码了,在代码上进行注解。
现在奉上所有的关于CAEmitterLayer和CAEmitterCell的所有的常用属性
CAEmitterLayer
birthRate:粒子产生系数,默认1.0;
emitterCells: 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;
emitterDepth:决定粒子形状的深度联系:emitter shape
emitterZposition:发射源的z坐标位置;
lifetime:粒子生命周期
preservesDepth:不是多很清楚(粒子是平展在层上)
scale:粒子的缩放比例:
seed:用于初始化随机数产生的种子
spin:自旋转速度
velocity:粒子速度
CAEmitterCell
CAEmitterCell类代从CAEmitterLayer射出的粒子;emitter cell定义了粒子发射的方向。
alphaRange: 一个粒子的颜色alpha能改变的范围;
alphaSpeed:粒子透明度在生命周期内的改变速度;
birthrate:粒子参数的速度乘数因子;每秒发射的粒子数量
blueRange:一个粒子的颜色blue 能改变的范围;
blueSpeed: 粒子blue在生命周期内的改变速度;
color:粒子的颜色
contents:是个CGImageRef的对象,既粒子要展现的图片;
contentsRect:应该画在contents里的子rectangle:
emissionLatitude:发射的z轴方向的角度
emissionLongitude:x-y平面的发射方向
emissionRange;周围发射角度
emitterCells:粒子发射的粒子
enabled:粒子是否被渲染
greenrange: 一个粒子的颜色green 能改变的范围;
greenSpeed: 粒子green在生命周期内的改变速度;
lifetime:生命周期
lifetimeRange:生命周期范围 lifetime= lifetime(+/-) lifetimeRange
magnificationFilter:不是很清楚好像增加自己的大小
minificatonFilter:减小自己的大小
minificationFilterBias:减小大小的因子
name:粒子的名字
redRange:一个粒子的颜色red 能改变的范围;
redSpeed; 粒子red在生命周期内的改变速度;
scale:缩放比例:
scaleRange:缩放比例范围;
scaleSpeed:缩放比例速度:
spin:粒子旋转角度
spinrange:粒子旋转角度范围
velocity:速度
velocityRange:速度范围
xAcceleration:粒子x方向的加速度分量
yAcceleration:粒子y方向的加速度分量
zAcceleration:粒子z方向的加速度分量
最后附上写的demo链接:http://download.csdn.net/detail/zyr124/9260455
- (void)configSnowEmitterLayer { // 生成一个CAEmitterLayer CAEmitterLayer *snowEmitterLayer = [CAEmitterLayer layer]; // 生成粒子的位置 snowEmitterLayer.emitterPosition = CGPointMake(self.view.bounds.size.width/2, -30); // 生成粒子的区域大小 snowEmitterLayer.emitterSize = CGSizeMake(self.view.bounds.size.width*2, 0); // 设置粒子发射模式 snowEmitterLayer.emitterMode = kCAEmitterLayerOutline; // 设置粒子源的形状 snowEmitterLayer.emitterShape = kCAEmitterLayerLine; // 设置layer的透明度,圆角等 snowEmitterLayer.shadowOpacity = 1.0; snowEmitterLayer.shadowRadius = 0.0; snowEmitterLayer.shadowOffset = CGSizeMake(0.0, 1.0f); snowEmitterLayer.shadowColor = [[UIColor whiteColor] CGColor]; // 设置发射出的粒子单元 snowEmitterLayer.emitterCells = [NSArray arrayWithObject:[self createSnowCell]]; // 添加到layer [self.view.layer insertSublayer:snowEmitterLayer atIndex:0]; } - (CAEmitterCell *)createSnowCell { // 创建粒子单元 CAEmitterCell *snowCell = [CAEmitterCell emitterCell]; snowCell.birthRate = 1.0f;// 每秒生成例子频率 snowCell.lifetime = 120.f; // 粒子系统的生命周期 snowCell.velocity = -10; // 粒子速度 snowCell.velocityRange = 10; // 粒子速度范围 snowCell.yAcceleration = 2; // 粒子y方向的加速度分量 snowCell.emissionRange = 0.5 * M_PI; // 周围发射角度 snowCell.spinRange = 0.25 * M_PI; // 旋转角度 snowCell.contents = (id)[[UIImage imageNamed:@"Snow"] CGImage]; // 粒子显示内容 snowCell.color = [[UIColor colorWithRed:0.600 green:0.658 blue:0.743 alpha:1.000] CGColor]; // 粒子颜色 return snowCell; }
现在奉上所有的关于CAEmitterLayer和CAEmitterCell的所有的常用属性
CAEmitterLayer
birthRate:粒子产生系数,默认1.0;
emitterCells: 装着CAEmitterCell对象的数组,被用于把粒子投放到layer上;
emitterDepth:决定粒子形状的深度联系:emitter shape
emitterZposition:发射源的z坐标位置;
lifetime:粒子生命周期
preservesDepth:不是多很清楚(粒子是平展在层上)
scale:粒子的缩放比例:
seed:用于初始化随机数产生的种子
spin:自旋转速度
velocity:粒子速度
CAEmitterCell
CAEmitterCell类代从CAEmitterLayer射出的粒子;emitter cell定义了粒子发射的方向。
alphaRange: 一个粒子的颜色alpha能改变的范围;
alphaSpeed:粒子透明度在生命周期内的改变速度;
birthrate:粒子参数的速度乘数因子;每秒发射的粒子数量
blueRange:一个粒子的颜色blue 能改变的范围;
blueSpeed: 粒子blue在生命周期内的改变速度;
color:粒子的颜色
contents:是个CGImageRef的对象,既粒子要展现的图片;
contentsRect:应该画在contents里的子rectangle:
emissionLatitude:发射的z轴方向的角度
emissionLongitude:x-y平面的发射方向
emissionRange;周围发射角度
emitterCells:粒子发射的粒子
enabled:粒子是否被渲染
greenrange: 一个粒子的颜色green 能改变的范围;
greenSpeed: 粒子green在生命周期内的改变速度;
lifetime:生命周期
lifetimeRange:生命周期范围 lifetime= lifetime(+/-) lifetimeRange
magnificationFilter:不是很清楚好像增加自己的大小
minificatonFilter:减小自己的大小
minificationFilterBias:减小大小的因子
name:粒子的名字
redRange:一个粒子的颜色red 能改变的范围;
redSpeed; 粒子red在生命周期内的改变速度;
scale:缩放比例:
scaleRange:缩放比例范围;
scaleSpeed:缩放比例速度:
spin:粒子旋转角度
spinrange:粒子旋转角度范围
velocity:速度
velocityRange:速度范围
xAcceleration:粒子x方向的加速度分量
yAcceleration:粒子y方向的加速度分量
zAcceleration:粒子z方向的加速度分量
最后附上写的demo链接:http://download.csdn.net/detail/zyr124/9260455
相关文章推荐
- android 代码实现控件之间的间距
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- [Android]在代码里运行另一个程序的方法
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- 肯特·贝克:改变人生的代码整理魔法
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- Gifski:一个跨平台的高质量 GIF 编码器
- 网页恶意代码的预防
- 高手写的Tracer-Flash代码调试类代码下载
- 模仿动画的放大缩小容器
- CSS代码缩写技巧
- 非主流Q-zOne代码代码搜集第1/2页
- CreateWeb.vbs 代码
- Lua中编译执行代码相关的函数详解
- 更有效率的css代码编写第1/3页
- Android中ViewFlipper的使用及设置动画效果实例详解