iOS实现“下雨下雪”动画效果和“烟花”动画效果
生活随笔
收集整理的這篇文章主要介紹了
iOS实现“下雨下雪”动画效果和“烟花”动画效果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
“下雨”的動畫效果
一、效果展示
二、實現流程
- 設置背景
- 設置發射源
- 設置發射粒子
- 點擊事件處理
“煙花”的動畫效果
一、效果展示
實現
self.view.backgroundColor = UIColor.black// cell產生在底部,向上移動let fireworkdEmitter = CAEmitterLayer.init()fireworkdEmitter.emitterPosition = CGPoint.init(x: self.view.frame.size.width/2, y: self.view.frame.size.height)fireworkdEmitter.emitterMode = CAEmitterLayerEmitterMode.outlinefireworkdEmitter.emitterShape = CAEmitterLayerEmitterShape.linefireworkdEmitter.renderMode = CAEmitterLayerRenderMode.additivefireworkdEmitter.seed = (arc4random()%100)+1// 創建火箭celllet rocket = CAEmitterCell.init()rocket.birthRate = 1rocket.emissionRange = CGFloat(0.25 * Double.pi);rocket.velocity = 300rocket.velocityRange = 75rocket.lifetime = 1.02rocket.contents = UIImage.init(named: "rain_white")?.cgImagerocket.scale = 0.5rocket.scaleRange = 0.5rocket.color = UIColor.red.cgColorrocket.greenRange = 1.0rocket.redRange = 1.0rocket.blueRange = 1.0rocket.spinRange = CGFloat(Double.pi)// 破裂對象不能被看到,但會產生火花// 這里改變顏色,因為火花繼承它的值let fireCell = CAEmitterCell.init()fireCell.birthRate = 1fireCell.velocity = 0fireCell.scale = 1fireCell.redSpeed = -1.5fireCell.blueSpeed = +1.5fireCell.greenSpeed = +1.5fireCell.lifetime = 0.34// and finally, the sparkslet spark = CAEmitterCell.init()// 炸開后產生400個小煙花spark.birthRate = 400// 速度spark.velocity = 125// 360度spark.emissionRange = CGFloat(2 * Double.pi)// 重力spark.yAcceleration = 40spark.lifetime = 3spark.contents = UIImage.init(named: "rain_white")?.cgImagespark.scaleSpeed = -0.2spark.greenSpeed = -0.1spark.redSpeed = +0.1spark.blueSpeed = -0.1spark.alphaSpeed = -0.25spark.spin = CGFloat(2 * Double.pi)spark.spinRange = CGFloat(2 * Double.pi)fireworkdEmitter.emitterCells = [rocket]rocket.emitterCells = [fireCell]fireCell.emitterCells = [spark];self.view.layer.addSublayer(fireworkdEmitter)完整示例
- iOS實現各種粒子的動畫效果
總結
以上是生活随笔為你收集整理的iOS实现“下雨下雪”动画效果和“烟花”动画效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS之仿QQ点赞按钮粒子效果的实现
- 下一篇: OpenGL ES之GLSL自定义着色器