Cocoa层粒子发射器动画添加多个cell的一种重构

Cocoa层粒子发射器动画添加多个cell的一种重构,第1张

概述在iOS动画之旅第19章中最后的挑战中需要我们在雪花例子发生器中添加多个雪花贴图,也就是多个cell,因为我们不可能将每个cell的参数都重新写一遍,所以有必要写一个helper方法来做这件事: func getCellByImgName(name:String)->CAEmitterCell{} 将原来viewDidLoad方法中与cell相关的代码拷贝进来,但除了几处小的修改: let e

在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,一切都安静了,安静的好冷啊…

总结

以上是内存溢出为你收集整理的Cocoa层粒子发射器动画添加多个cell的一种重构全部内容,希望文章能够帮你解决Cocoa层粒子发射器动画添加多个cell的一种重构所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1050711.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存