pul*_*ulp 5 colors ios caemitterlayer caemittercell swift
我对CAEmitterCell颜色属性有一些奇怪的行为,或者我不太了解。
我有一个牢房
let cell = CAEmitterCell()
Run Code Online (Sandbox Code Playgroud)
具有简单的.png文件的内容,该文件被绘制为黑色
cell.contents = UIImage(named: "particle")?.cgImage
Run Code Online (Sandbox Code Playgroud)
我尝试将其更改为绿色
cell.color = UIColor.green.cgColor
Run Code Online (Sandbox Code Playgroud)
但是它仍然是黑色的。我试图将媒体资源中此图像的“渲染为”属性更改为“模板图像”,但没有效果。
谁能帮助我了解我在做什么错?
这是如何更改 的颜色的简单示例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
}
}
Run Code Online (Sandbox Code Playgroud)
以及动画的例子。
| 归档时间: |
|
| 查看次数: |
454 次 |
| 最近记录: |