iOS 粒子發射效果

weixin_33895657發表於2018-08-23

粒子發射

func start() {
        
        // 1.建立發射器
        let emitter = CAEmitterLayer()
        
        // 2.設定發射器的位置
        emitter.emitterPosition = CGPoint(x: view.bounds.width * 0.5, y: -60)
        
        // 3.開啟三維效果
        emitter.preservesDepth = true
        
        // 4.建立例子, 並且設定例子相關的屬性
        // 4.1.建立例子Cell
        let cell = CAEmitterCell()
        
        // 4.2.設定粒子速度
        cell.velocity = 150
        cell.velocityRange = 100
        
        // 4.3.設定例子的大小
        cell.scale = 0.7
        cell.scaleRange = 0.3
        
        // 4.4.設定粒子方向
        cell.emissionLongitude = CGFloat(M_PI_2)
        cell.emissionRange = CGFloat(M_PI_2 / 2)
        
        // 4.5.設定例子的存活時間
        cell.lifetime = 6
        cell.lifetimeRange = 1.5
        
        // 4.6.設定粒子旋轉
        cell.spin = CGFloat(M_PI_2)
        cell.spinRange = CGFloat(M_PI_2 / 2)
        
        // 4.6.設定例子每秒彈出的個數
        cell.birthRate = 20
        
        // 4.7.設定粒子展示的圖片
        cell.contents = UIImage(named: "good6_30x30")?.cgImage
        
        // 5.將粒子設定到發射器中
        emitter.emitterCells = [cell]
        
        // 6.將發射器的layer新增到父layer中
        view.layer.addSublayer(emitter)
    }

停止發射

 func stop() {
        /*
        for layer in view.layer.sublayers! {
            if layer.isKind(of: CAEmitterLayer.self) {
                layer.removeFromSuperlayer()
            }
        }
        */
        view.layer.sublayers?.filter({ $0.isKind(of: CAEmitterLayer.self)}).first?.removeFromSuperlayer()
    }
2018969-9f3800e833ea9ff1.png
粒子效果

相關文章