Intenté todo, pero no puedo animar la propiedad de color de un CAEmitterCell con un CAKeyframeAnimation. Lo extraño es: puedo animar posiblemente casi todo lo demás (no lo he probado todo, pero así parece). Por ejemplo: animar backgroundColor de CAEmitterLayer que contiene CAEmitterCell no es un problema. También la animación de la escala CAEmitterCell funciona bien.

Aquí hay una versión abreviada de mi código:

let cell = CAEmitterCell()
...
cell.name = "main"
emitter.emitterCells = [cell]

let keyPath = "emitterCells.main.color"
// Uncomment this to see that the keyPath works correctly:
//emitter.setValue(UIColor(red: 1, green: 0, blue: 0, alpha: 1).cgColor, forKeyPath: keyPath)
...
let backColorPath = "backgroundColor"
// Use this to see that color animation is basically possible:
//let anim2 = CAKeyframeAnimation(keyPath: backColorPath)
let anim2 = CAKeyframeAnimation(keyPath: keyPath)
anim2.beginTime = CACurrentMediaTime()
anim2.duration = 5
anim2.keyTimes = [0, 0.25, 0.5, 0.75, 1]
anim2.repeatCount = 20
anim2.values = [UIColor.red.cgColor, UIColor.blue.cgColor,
            UIColor.yellow.cgColor, UIColor.cyan.cgColor,
            UIColor.magenta.cgColor]
emitter.add(anim2, forKey: "coloring")

¿Alguien tiene alguna idea de dónde me equivoqué?

1
Jan 3 dic. 2016 a las 16:18
1
El parque infantil Gist se puede encontrar aquí: gist.github.com/JD-CSTx/fc0e55d4dfcfc9c79
 – 
Jan
3 dic. 2016 a las 17:16
Presenté un error en Apple por este comportamiento, espero que lo solucionen en iOS 11, más probablemente 12, o nunca, dado su ciclo de actualización habitual. En el momento de este comentario, iOS 10.2 es el último iOS.
 – 
Jan
5 ene. 2017 a las 16:31
Mi última información de Apple es que el error está solucionado, lo probaré si sale iOS 11, porque parece que la corrección del error no está incluida en iOS 10.
 – 
Jan
9 ago. 2017 a las 12:27

1 respuesta

La mejor respuesta

Este fue un error dentro de las bibliotecas de Apple, lo arreglaron en iOS 11.

0
Jan 22 abr. 2018 a las 17:49