iOS中的粒子动画怎么利用CAEmitterLayer实现

  介绍

这篇文章将为大家详细讲解有关iOS中的粒子动画怎么利用CAEmitterLayer实现,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

CAGradientLayer继承自CALayer,它主要功能是能实现渐变的颜色

@ property(复制),NSArray  * colors 渐变颜色的数组,   @ property(复制),NSArray  * locations 渐变颜色的区间分布,   位置的数组长度和颜色一致,一般不用设置,默认是nil,会平均分布。//[NSArray  arrayWithObjects: NSNumber  numberWithFloat: 0.0,,   ,//,,,,,,(NSNumber  numberWithFloat: 0.3),   ,//,,,,,,(NSNumber  numberWithFloat: 0.8),   ,//,,,,,,(NSNumber  numberWithFloat: 1.0),   ,//,,,,,nil),,   @property  CGPoint  startPoint 映射位置中第一个位置,   用单位向量表示,比如(0,0)表示从左上角开始变化。默认值是(0.5,0.0)。   @property  CGPoint  endPoint 映射位置中最后一个位置   ,用单位向量表示,比如(1,1)表示到右下角变化结束。默认值是(0.5,1.0)。

演示背景色代码

,//渐变色   ,CAGradientLayer  * gradientLayer =, (CAGradientLayer 层);=,,gradientLayer.frame  self.view.bounds;   ,[self.view.layer  addSublayer gradientLayer):;      ,UIColor  * lightColor =, (UIColor  colorWithRed: 40.0,, 255.0,格林:150.0,/,255.0,蓝色:200.0,/,255.0,α:1.0);      ,UIColor  * whiteColor =, (UIColor  colorWithRed: 255.0,, 255.0,格林:250.0,/,255.0,蓝色:250.0,/,255.0,α:1.0);//可以设置多个颜色,=,gradientLayer.colors  @ [(__bridge  id) lightColor.CGColor (__bridge  id) whiteColor.CGColor);   ,//45度变色(由lightColor→白色)=,,gradientLayer.startPoint  CGPointMake (0, 0);=,,gradientLayer.endPoint  CGPointMake (1, 1),

雪花粒子发射器

, CAEmitterCell  * cell =, [[CAEmitterCell  alloc], init);   ,//展示的图片   ,cell.contents =, (__bridge  id  _Nullable) ([UIImage  imageNamed: @" white"] .CGImage);      ,//每秒粒子产生个数的乘数因子,会和层的出生率相乘,然后确定每秒产生的粒子个数=,cell.birthRate  2000;   ,//每个粒子存活时长=,cell.lifetime  5.0;   ,//粒子生命周期范围=,cell.lifetimeRange  0.3;   ,//粒子透明度变化,设置为-0.4,就是每过一秒透明度就减少0.4,这样就有消失的效果,一般设置为负数。=,cell.alphaSpeed  -0.2;=,cell.alphaRange  0.5;   ,//粒子的速度=,cell.velocity  40;   ,//粒子的速度范围=,cell.velocityRange  20;   ,//周围发射的角度,如果为M_PI * 2,就可以从360度任意位置发射   ,//cell.emissionRange =, M_PI * 2;   ,//粒子内容的颜色   ,//cell.color =, [[UIColor  whiteColor], CGColor);//设置了颜色变化范围后每次产生的粒子的颜色都是随机的=,cell.redRange  0.5;=,cell.blueRange  0.5;=,cell.greenRange  0.5;      ,//缩放比例=,cell.scale  0.2;   ,//缩放比例范围=,cell.scaleRange  0.02;      ,//粒子的初始发射方向=,,cell.emissionLongitude  M_PI;   ,//Y方向的加速度=,cell.yAcceleration  70.0;   ,//X方向加速度   ,//cell.xAcceleration =, 20.0;=,_emitterLayer  [CAEmitterLayer 层);      ,//发射位置=,,_emitterLayer.emitterPosition  CGPointMake (SCREEN_WIDTH/2.0, 0);   ,//粒子产生系数,默认为1=,_emitterLayer.birthRate  1;   ,//发射器的尺寸=,,_emitterLayer.emitterSize  CGSizeMake (SCREEN_WIDTH, 0);   ,//发射的形状=,,_emitterLayer.emitterShape  kCAEmitterLayerLine;   ,//发射的模式=,,_emitterLayer.emitterMode  kCAEmitterLayerLine;   ,//渲染模式=,,_emitterLayer.renderMode  kCAEmitterLayerOldestFirst;=,_emitterLayer.masksToBounds 没有;   ,//_emitterLayer.zPosition =, 1;=,_emitterLayer.emitterCells  @(细胞);//emitterView是自己创建的一个视图   ,[self.emitterView.layer  addSublayer: _emitterLayer];

代码中都有注释,这里进行简单的解释

<强> CAEmitterCell粒子单元

<李>

内容一般放一张图片,是我们粒子要展示的内容

<李>

出生率每秒粒子产生个数的乘数因子,会和层的出生率相乘,然后确定每秒产生的粒子个数

<李>

lifetimeRange所有的范围属性都是你设置的属性值加减它后得到一个范围,例如cell.lifetime=5.0,细胞。lifetimeRange=1.0;那么粒子的存活时间就是[4.0,6.0];

iOS中的粒子动画怎么利用CAEmitterLayer实现