小编Nic*_*uez的帖子

仅运行 CAEmitterLayer 一次

我只想运行 CAEmitterLayer 一次,我想停止birthRate,但我做不到。我想要的是它在点击屏幕时只运行一次。我一直在与代表一起尝试,但无法使其发挥作用。您能否告诉我我的代码是否有效?

    import UIKit
    import PlaygroundSupport

    class Emitter {
        static func get(with image: UIImage) -> CAEmitterLayer {
            let emitter = CAEmitterLayer()
            emitter.emitterShape = kCAEmitterLayerLine
            emitter.emitterCells = generateEmitterCells(image: image)
            print("emit")
            emitter.setValue(0.0, forKey: "em")
            return emitter
        }

        static func generateEmitterCells(image: UIImage) -> [CAEmitterCell] {
            var cells = [CAEmitterCell]()
            let cell = CAEmitterCell()
            cell.contents = image.cgImage
            cell.birthRate = 0.1
            cell.lifetime = 20
            cell.velocity = 250
            cell.emissionRange = (10 * (.pi/180))
            cell.scale = 0.9
            cell.scaleRange = 0.3
            cell.velocityRange = 100
            cells.append(cell)
            print("cells")
            return …
Run Code Online (Sandbox Code Playgroud)

core-animation uikit ios caemitterlayer swift

5
推荐指数
1
解决办法
482
查看次数

标签 统计

caemitterlayer ×1

core-animation ×1

ios ×1

swift ×1

uikit ×1