iOS_使用CAEmitterLayer实现火焰(发散)效果
2016-06-12 本文已影响670人
Mark_Ming
上一篇文章里我们使用CAEmitterLayer实现了飘落效果,今天我们来实现火焰效果,先看一下效果图:
火焰效果一.gif 火焰效果二.gif代码如下:
- (void)getBoomAnimation
{
//创建一个CAEmitterLayer,大小同view一样
CAEmitterLayer *emitter = [CAEmitterLayer layer];
emitter.frame = self.view.bounds;
[self.view.layer addSublayer:emitter];
//渲染模式!!!一共有五个效果,修改了效果会有区分
emitter.renderMode = kCAEmitterLayerBackToFront;
//整体位置
emitter.emitterPosition = CGPointMake(emitter.frame.size.width / 2.0, emitter.frame.size.height / 2.0);
//每个图像单位
CAEmitterCell *cell = [[CAEmitterCell alloc] init];
cell.contents = (__bridge id)[UIImage imageNamed:@"2"].CGImage;
//图像的出现频率(每秒钟图片出现的数量)
cell.birthRate = 50;
//每个图像的生命周期
cell.lifetime = 6.0;
//图片背景色,不设置就是原图
cell.color = [UIColor yellowColor].CGColor;
//透明度每过一秒就是减少0.5
cell.alphaSpeed = -0.2;
//发射速度
cell.velocity = 50;
//每个图像速度范围
cell.velocityRange = 100;
//散射的范围,目前是向四周
cell.emissionRange = M_PI * 2.0;
//开始动画
emitter.emitterCells = @[cell];
}
在使用的地方调用即可:
- (void)viewDidLoad {
[super viewDidLoad];
[self getBoomAnimation];
// Do any additional setup after loading the view, typically from a nib.
}