CALayer-CAEmitterLayer(粒子图层)
来源:互联网 发布:澳大利亚土著居民知乎 编辑:程序博客网 时间:2024/05/17 09:15
转载:http://www.jianshu.com/p/3dbccd78ee91
CALayer-CAEmitterLayer(粒子图层)
CAEmitterLayer
能够显示粒子效果通过Core Animation,而粒子是通过CAEmitterCell
来创建的,这些粒子被绘制在图层的背景上方 *
指定的粒子属性
- emitterCells
var emitterCells: [CAEmitterCell]?
所有在数组中的粒子都会被随机的绘制在图层上
粒子几何属性
renderModel var renderMode: String
控制粒子的渲染模式,(比如是否粒子重叠加重色彩)默认值是kCAEmitterLayerUnordered
.
let kCAEmitterLayerUnordered: String
无序随机的let kCAEmitterLayerOldestFirst: String
最新的在上层出现let kCAEmitterLayerOldestLast: String
最新的在下层出现let kCAEmitterLayerBackToFront: String
由下层向上层涌动let kCAEmitterLayerAdditive: String
叠加显示
emitterPosition var emitterPosition: CGPoint
在粒子图层上粒子的发射点(支持隐式动画)
emitterShape var emitterShape: String
粒子发射点图形形状
let kCAEmitterLayerPoint: String
点let kCAEmitterLayerLine: String
线形let kCAEmitterLayerRectangle: String
矩形let kCAEmitterLayerCuboid: String
长方体let kCAEmitterLayerCircle: String
圆形let kCAEmitterLayerSphere: String
球体
emitterZPosition var emitterZPosition: CGFloat
粒子发射器的z轴中心,这个需要结合emitterSize
和emitterDepth
来使用,主要是用来设置emitterShape
的.默认值是0
emitterDepth var emitterDepth: CGFloat
粒子发射器的深度,也就是y轴的高emitterZPosition
就是这个Z轴的中心
emitterSize var emitterSize: CGSize
这个就是粒子发射器的shape的大小,控制emitterShape
的大小
emitterMode var emitterModel: String
粒子发射器的模式
let kCAEmitterLayerPoints: String
let kCAEmitterLayerOutline: String
let kCAEmitterLayerSurface: String
let kCAEmitterLayerVolume: String
CAEmitterCell的基础属性
scale var scale: Float
设置粒子发射器的生成粒子的初始缩放比例
speed var speed: UInt32
粒子发射器的粒子发射速度
spin var spin: CGFloat
设置粒子的自旋速度,数值越大旋转越快
velocity var velocity: Float
设置粒子的移动速度(支持隐式动画)默认值是1.0
birthRate var birthRate: Float
每秒生成的粒子数量,默认值是1(支持隐式动画)
lifetime var lifetime: Float
设置粒子的生存时间(支持隐式动画)默认是1.0
其实用起来比较简单,所以先看一个例子,用起来好晃眼~~~
//// ViewController.swift// CAEmitterLayer//// Copyright © 2016 BZ. All rights reserved.//import UIKitclass ViewController: UIViewController { var emitterLayer:CAEmitterLayer! override func viewDidLoad() { super.viewDidLoad() setupUI() } func setupUI() { emitterLayer = CAEmitterLayer() self.view.layer.addSublayer(emitterLayer) emitterLayer.backgroundColor = UIColor.blackColor().CGColor let screenWidth = self.view.bounds.size.width emitterLayer.frame = CGRectMake(0, 0, screenWidth, screenWidth) emitterLayer.position = self.view.center emitterLayer.emitterPosition = CGPointMake(emitterLayer.bounds.size.width/2, emitterLayer.bounds.size.height/2) emitterLayer.renderMode = kCAEmitterLayerUnordered; emitterLayer.emitterShape = kCAEmitterLayerPoint; 发射器形状 emitterLayer.emitterSize = CGSizeMake(200, 200); // 发射器大小 let emitterCell = CAEmitterCell() emitterCell.scale = 0.2 emitterCell.contents = UIImage(named: "123")?.CGImage emitterCell.birthRate = 100 //出生率 emitterCell.lifetime = 5 //生存时间 emitterCell.velocity = 50 //发射速度 emitterCell.velocityRange = 100 //发射的范围 emitterCell.alphaSpeed = -0.4 //透明度递增速度 emitterCell.emissionRange = CGFloat(M_PI*2.0) 发射角度 emitterLayer.emitterCells = [emitterCell] } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. }}
- CALayer-CAEmitterLayer(粒子图层)
- iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器
- CAEmitterLayer实现粒子效果
- CAEmitterLayer 粒子效果
- CAEmitterLayer(粒子系统)
- CAEmitterLayer实现粒子效果
- CAEmitterLayer实现粒子效果
- CAEmitterLayer,粒子发射系统
- CAEmitterLayer粒子效果
- CALayer 自定义图层
- CALayer图层
- CALayer图层
- 图层(CALayer)
- CALayer图层
- IOS 图层CALayer
- CALayer图层
- CALayer图层
- CALayer图层2
- ORACLE分页查询SQL语法——最高效的分页
- MUI框架教程 基于localStorage的便签APP开发源码实例
- 自然语言处理入门
- oracle 数据库中的一些基本语句
- linux netstat查看服务和端口状态
- CALayer-CAEmitterLayer(粒子图层)
- 【xilinx】关于textbench的资料
- bat,大企业面试 题目
- 传送门---Handler 内存泄露问题
- SpringMvc中的国际化中文和英文互换
- 【规则引擎连载1】 WebSphere ILOG JRules 开发----简述
- Joda-time学习笔记
- Word2013中如何去掉页眉横线
- Spring中重定向到一个RequestMapping中去