【问题标题】:CAEmitterCell color property not workingCAEmitterCell 颜色属性不起作用
【发布时间】:2017-04-14 13:23:01
【问题描述】:

我对 CAEmitterCell 颜色属性有一些奇怪的行为,或者我不理解它。

我有一个细胞

let cell = CAEmitterCell()

简单的.png文件的内容被绘制成黑色

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

我试着把它改成绿色

cell.color = UIColor.green.cgColor

但它仍然呈现黑色。 我试图在媒体资产中将此图像的“渲染为”属性更改为“模板 imagr”,但没有效果。

谁能帮我理解我做错了什么?

【问题讨论】:

  • 粒子下有图片吗?
  • 我不确定我是否理解您的问题。
  • 项目的bundle中有名称为particle的图片吗?
  • @OlegGordiichuk 是的,当然。实际上问题是关于改变这张图片的颜色。
  • 我提供了工作示例,在您的环境中尝试一下

标签: ios swift colors caemitterlayer caemittercell


【解决方案1】:

好的,情况是初始图像的颜色:图像越暗 - 您的颜色变化越少。所以最好为你的粒子发射器使用白色图像%)

【讨论】:

  • 我总是忘记这个!
【解决方案2】:

这是如何更改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
    }

}

以及动画示例。

【讨论】:

猜你喜欢
  • 2014-05-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2017-08-08
  • 1970-01-01
  • 2020-09-26
相关资源
最近更新 更多