Quiero animar el cambio en el color del texto (foregroundColor) de un CATextLayer en el iPhone. De acuerdo con la documentación, la animación implícita de la propiedad no está disponible en OSX 10.6, pero no se menciona a iOS. Como resultado, he supuesto que la animación debe ser explícita para que funcione en iOS.Animación de la propiedad foregroundColor de CATextLayer
He cambiado la clase de capa de respaldo usando +(class)layerClass
, y establecí un valor inicial para la propiedad en el método UIView init
. El texto aparece bien, junto con todas las propiedades que he aplicado (sombra, fuente, etc.), pero la animación no tiene ningún impacto.
A continuación se muestra mi método de animación, al que llamo desde un método de observación de KVO para que la vista advierta al usuario cuando la propiedad observada ha cambiado.
-(void) animateTextChange{
animation = [CABasicAnimation animationWithKeyPath:@"foregroundColor"];
[animation setFromValue:[[UIColor blackColor] CGColor]];
[animation setToValue:[[UIColor whiteColor] CGColor]];
[animation setDuration:2.0f];
[[self layer] addAnimation:animation
forKey:@"foregroundColor"
];
}
Gracias como siempre.
Estaba tan esperando que esto funcionaría, pero no funcionó para mí en iOS9 –
Se * funcionó * después de que cambié la línea 'setValue: ...' para que fuera 'CATransaction.disableActions()' –