[英]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.