美文网首页iOS动画iOS 特效功能动画
iOS_使用CAEmitterLayer实现火焰(发散)效果

iOS_使用CAEmitterLayer实现火焰(发散)效果

作者: Mark_Ming | 来源:发表于2016-06-12 12:03 被阅读670次
    上一篇文章里我们使用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.
    }
    

    相关文章

      网友评论

        本文标题:iOS_使用CAEmitterLayer实现火焰(发散)效果

        本文链接:https://www.haomeiwen.com/subject/ivpedttx.html