Estoy intentando construir una CABasicAnimation para animar la propiedad backgroundColor de un CALayer de Core Animation, pero no puedo encontrar la forma de ajustar correctamente un valor de CGColorRef para pasar a la animación. Por ejemplo:¿Cómo se anima explícitamente un backgroundColor de CALayer?
CGColorSpaceRef rgbColorspace = CGColorSpaceCreateDeviceRGB();
CGFloat values[4] = {1.0, 0.0, 0.0, 1.0};
CGColorRef red = CGColorCreate(rgbColorspace, values);
CGColorSpaceRelease(rgbColorspace);
CABasicAnimation *selectionAnimation = [CABasicAnimation animationWithKeyPath:@"backgroundColor"];
[selectionAnimation setDuration:0.5f];
[selectionAnimation setToValue:[NSValue valueWithPointer:red]];
[layer addAnimation:selectionAnimation forKey:@"selectionAnimation"];
parece no hacer nada a la propiedad backgroundColor, supongo que porque la entrega, ya que un puntero envuelto en una NSValue no es la manera de pasar a lo largo.
backgroundColor es una propiedad animable de CALayer, por lo que mi pregunta es: ¿cómo se configuran los valores From o To para esta propiedad en particular (preferiblemente en una plataforma independiente de Mac/iPhone)?
Sweet. Pensarías que documentarían el encasillamiento a id en alguna parte. Sí, podría hacer mi vida más fácil con una animación implícita, pero esto me estaba molestando. Para que esto persista, todo lo que necesita es establecer el modo de relleno de la animación en kCAFillModeForwards y removedOnCompletion en NO. –
+1 ¡Agradable, funciona como un encanto! –
O puede ahorrarse un montón de tiempo y utilizar la biblioteca de Facebook Pop: https://github.com/facebook/pop. Ejemplos aquí: https://github.com/maxmyers/FacebookPop – Benjamin