iOS动画iOS 特效功能动画

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.
}
上一篇下一篇

猜你喜欢

热点阅读