Cocoa层粒子发射器动画添加多个cell的一种重构
来源:互联网 发布:做淘宝一个月赚10万 编辑:程序博客网 时间:2024/06/07 19:28
在iOS动画之旅第19章中最后的挑战中需要我们在雪花例子发生器中添加多个雪花贴图,也就是多个cell,因为我们不可能将每个cell的参数都重新写一遍,所以有必要写一个helper方法来做这件事:
func getCellByImgName(name:String)->CAEmitterCell{}
将原来viewDidLoad方法中与cell相关的代码拷贝进来,但除了几处小的修改:
let emitterCell = CAEmitterCell() emitterCell.contents = UIImage(named: name)!.CGImage emitterCell.birthRate = 50 emitterCell.lifetime = 3.5 emitterCell.lifetimeRange = 1.0 emitterCell.yAcceleration = 70.0 emitterCell.xAcceleration = 10.0 emitterCell.velocity = 20.0 emitterCell.emissionLongitude = CGFloat(-M_PI) emitterCell.velocityRange = 200.0 emitterCell.emissionRange = CGFloat(M_PI_2) emitterCell.color = UIColor(red: 0.9, green: 1.0, blue: 1.0, alpha: 1.0).CGColor emitterCell.redRange = 0.1 emitterCell.greenRange = 0.1 emitterCell.blueRange = 0.1 emitterCell.scale = 0.8 emitterCell.scaleRange = 0.8 emitterCell.scaleSpeed = -0.15 //emitterCell.birthRate = 150 emitterCell.alphaRange = 0.75 emitterCell.alphaSpeed = -0.15 return emitterCell
如上,将UIImage构造器中的字面值换为参数值,并且将以下一句删掉:
emitter.emitterCells = [emitterCell]
回到viewDidLoad中,连续添加3个新方法的调用:
emitter.emitterCells?.append(getCellByImgName("flake.png")) emitter.emitterCells?.append(getCellByImgName("flake3.png")) emitter.emitterCells?.append(getCellByImgName("flake4.png"))
运行App,咦!?怎么神马也不显示?
在第一个getCellByImgName调用的地方下断点,发现根本没有调用该方法.原来是没有给发射器的emitterCells赋初始化值,因为该值是可选调用,如果是nil自然忽略喽!
在第一个getCellByImgName调用前面添加一行:
emitter.emitterCells = []
运行App,一切都安静了,安静的好冷啊…
0 0
- Cocoa层粒子发射器动画添加多个cell的一种重构
- Cocos2D粒子发射器的纹理
- iOS 使用核心动画加粒子发射器实现的点赞按钮
- CCArmature添加粒子发射器遇到的BUG,求救~ [编辑器问题反馈]
- iOS CAEmitterLayer 粒子发射器的使用详解
- iOS-利用粒子发射器(CAEmitterLayer) 制作发射动画
- 添加每个cell出现时的动画
- 给cell添加动画
- 向datagrid的cell中添加多个dijit
- iOS 烟花撒花效果,图层渐变,图层倒影特效。CAEmitterLayer粒子发射器
- ios cell添加多个UILabel
- Andengine粒子发射器学习总结
- 如何制作网格粒子发射器
- 给TableView Cell 添加动画
- 给tableview cell添加动画
- 给TableView或者CollectionView的cell添加简单动画
- 给TableView或者CollectionView的cell添加动画
- VTK PolyData数据重构-添加point和cell
- JavaScript onmousewheel鼠标滚轮示例
- 用Hadoop1.0.3实现KMeans算法
- Maven的作用
- Logistic回归---从疝气病症预测马的死亡率
- 操作系统的基本类型
- Cocoa层粒子发射器动画添加多个cell的一种重构
- 单例造成的内存泄漏
- JavaScript 高级课程之定时器setInterval,clearInterval
- OFDM原理
- HTML字符集
- 大数据SQL执行工具调研总结
- jiffies & HZ
- 行内元素与块级元素比较全面的区别和转换
- listview头部显示不出来的问题