博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UI基础--烟花动画
阅读量:4324 次
发布时间:2019-06-06

本文共 3431 字,大约阅读时间需要 11 分钟。

首先我们先导入系统的库:

添加下面的代码即可:

#import "FireworksViewController.h"@interface FireworksViewController ()@end@implementation FireworksViewController- (void)viewDidLoad {    [super viewDidLoad];    // Do any additional setup after loading the view.    self.view.backgroundColor = [UIColor whiteColor];    self.title = @"烟花动画";        //设置重底部发射cells    CAEmitterLayer *fireworksEmitter = [CAEmitterLayer layer];    CGRect viewBounds = self.view.layer.bounds;    //发射位置    fireworksEmitter.emitterPosition = CGPointMake(viewBounds.size.width / 2.0, viewBounds.size.height - 200);    //发射源大小    fireworksEmitter.emitterSize = CGSizeMake(viewBounds.size.width / 2.0, 0.0);    //发射模式    fireworksEmitter.emitterMode = kCAEmitterLayerOutline;    //发射形状    fireworksEmitter.emitterShape = kCAEmitterLayerLine;    //渲染模式(kCAEmitterLayerAdditive与kCAEmitterLayerUnordered相比较, 合并重叠的部分使看上去更亮);    fireworksEmitter.renderMode = kCAEmitterLayerAdditive;    //初始化随机产生的种子    fireworksEmitter.seed = (arc4random()%100) + 1;    // Create the rocket    CAEmitterCell *rocket = [CAEmitterCell emitterCell];    //设置每秒产生的粒子数    rocket.birthRate = 2.0;    //周围发射角度    rocket.emissionRange = 0.0 * M_PI;    //速度    rocket.velocity = 350;    //速度范围    rocket.velocityRange = 200;    //粒子的y方向的加速度分量    rocket.yAcceleration = 75;    //设置生命周期,即在屏幕上要显示多长时间    rocket.lifetime = 1.02;        rocket.contents = (id)[[UIImage imageNamed:@"DazRing"] CGImage];    //粒子尺寸    rocket.scale = 0.2;    //粒子颜色    rocket.color = [[UIColor redColor]CGColor];    //粒子的颜色green,red,blue 能改变的范围    rocket.greenRange = 1.0;    rocket.redRange = 1.0;    rocket.blueRange = 1.0;    //子旋转角度范围    rocket.spinRange = M_PI;        // the burst object cannot be seen, but will spawn the sparks    // we change the color here, since the sparks inherit its value    CAEmitterCell* burst = [CAEmitterCell emitterCell];        burst.birthRate            = 1.0;        // at the end of travel    burst.velocity            = 0;    burst.scale                = 2.5;    //粒子red,blue,green 在生命周期内的改变速度    burst.redSpeed            =-1.5;        // shifting    burst.blueSpeed            =+1.5;        // shifting    burst.greenSpeed        =+1.0;        // shifting        burst.lifetime            = 0.35;        // and finally, the sparks    CAEmitterCell* spark = [CAEmitterCell emitterCell];        spark.birthRate            = 400;    spark.velocity            = 120;    spark.emissionRange        = 2* M_PI;    // 360 deg    spark.yAcceleration        = 75;        // gravity    spark.lifetime            = 2;        spark.contents            = (id) [[UIImage imageNamed:@"桃心"] CGImage];    //缩放比例速度    spark.scaleSpeed        =-0.2;    spark.greenSpeed        =-0.1;    spark.redSpeed            = 0.4;    spark.blueSpeed            =-0.1;    spark.alphaSpeed        =-0.25;        //子旋转角度    spark.spin                = 2* M_PI;        //子旋转角度范围    spark.spinRange            = 2* M_PI;        // putting it together    fireworksEmitter.emitterCells    = [NSArray arrayWithObject:rocket];    rocket.emitterCells                = [NSArray arrayWithObject:burst];    burst.emitterCells                = [NSArray arrayWithObject:spark];    [self.view.layer addSublayer:fireworksEmitter];        //设置背景图片    UIImage *image = [UIImage imageNamed:@"1.jpg"];        //__bridge id    self.view.layer.contents = (__bridge id)(image.CGImage);    }@end

效果:

 

转载于:https://www.cnblogs.com/LzwBlog/p/5724829.html

你可能感兴趣的文章
C#微型网页查看工具
查看>>
反射,泛型擦除
查看>>
20155339 《信息安全系统设计基础》课程总结
查看>>
javascript 正则表达式学习
查看>>
ASCII代码 简介
查看>>
SSL协议之数据加密过程详解
查看>>
Mybatis <if>标签
查看>>
Hibernate HQL详解
查看>>
IOS学习之斯坦福大学IOS开发课程笔记(第六课)
查看>>
详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
查看>>
centos7 开放端口
查看>>
迷宫实现
查看>>
如何使用Transact-SQL进行事务处理[示例]
查看>>
选择JSF不选Struts的十大理由
查看>>
01-编写CMS注意事项
查看>>
SQL 事务
查看>>
element的form表单中如何一行显示多el-form-item标签
查看>>
SQL Server两种分页的存储过程介绍
查看>>
09 audio和vedio标签
查看>>
【HDU 6299】Balanced Sequence
查看>>