簡體   English   中英

CAEmitterCell 顏色屬性不起作用

[英]CAEmitterCell color property not working

我對 CAEmitterCell 顏色屬性有一些奇怪的行為,或者我不明白。

我有一個細胞

let cell = CAEmitterCell()

帶有黑色繪制的簡單 .png 文件的內容

cell.contents = UIImage(named: "particle")?.cgImage

我試着把它改成綠色

cell.color = UIColor.green.cgColor

但它仍然呈現黑色。 我試圖在媒體資產中將此圖像的“渲染為”屬性更改為“模板圖像”,但沒有效果。

誰能幫我理解我做錯了什么?

好的,案例是初始圖像的顏色:圖像越暗 - 顏色變化越少。 所以最好為你的粒子發射器使用白色圖像 %)

這是如何更改CAEmitterCell顏色的簡單示例。

class ViewController: UIViewController {

    override func viewDidAppear(_ animated: Bool) {
        createParticles()
    }

    func createParticles() {
        let particleEmitter = CAEmitterLayer()

        particleEmitter.emitterPosition = CGPoint(x: view.center.x, y: -96)
        particleEmitter.emitterShape = kCAEmitterLayerLine
        particleEmitter.emitterSize = CGSize(width: view.frame.size.width, height: 1)

        let red = makeEmitterCell(color: UIColor.red)
        let green = makeEmitterCell(color: UIColor.green)
        let blue = makeEmitterCell(color: UIColor.blue)

        particleEmitter.emitterCells = [red, green, blue]

        view.layer.addSublayer(particleEmitter)
    }

    func makeEmitterCell(color: UIColor) -> CAEmitterCell {
        let cell = CAEmitterCell()
        cell.birthRate = 3
        cell.lifetime = 7.0
        cell.lifetimeRange = 0
        cell.color = color.cgColor
        cell.velocity = 200
        cell.velocityRange = 50
        cell.emissionLongitude = CGFloat.pi
        cell.emissionRange = CGFloat.pi / 4
        cell.spin = 2
        cell.spinRange = 3
        cell.scaleRange = 0.5
        cell.scaleSpeed = -0.05

        cell.contents = UIImage(named: "images")?.cgImage
        return cell
    }

}

和動畫的例子。

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM