iphone - ¿Cómo puedo saber los valores en CABasicAnimation keyPath
calayer (2)
Encuentro un código como este:
CABasicAnimation *anim = [CABasicAnimation animation];
anim.keyPath = @"transform.scale";
anim.fromValue = [NSNumber numberWithFloat:1.0];
anim.toValue = [NSNumber numberWithFloat:0];
anim.removedOnCompletion = NO;
anim.fillMode = kCAFillModeBoth;
anim.delegate = self;
[self.view.layer addAnimation:anim forKey:@"scaleOut"];
y
anim.keyPath = @"transform.rotation.x";
Por lo que sé, keyPath es un método invocado en cadena. "transform.scale" para CALayer es aLayer.transform.scale. "transform" es una propiedad de CALayer, "scale" es una "propiedad" de transform. Pero la transformación de propiedades en CALayer es CATransform3D.
No hay ninguna propiedad llamada "escala" o "rotación" en CATransform3D.
Mi pregunta es: ¿Cómo se identifica "escala" y "rotación" con keyPath?
Core Animation extiende KVC para admitir el direccionamiento directo de los campos (o pseudo campos) de algunas propiedades de tipo struct de las capas. La función se describe en Extensiones de animación de núcleo para la codificación de clave-valor .
No estoy seguro, pero encontré una solución que probablemente podría ayudar.
EN SWIFT: En lugar de escribir una cadena puedes usar esto:
let shadowAnimation = CABasicAnimation(keyPath: #keyPath(CALayer.shadowRadius))
Cuando tecleas CALayer. <- autocompletar debe proporcionarle las KeyPaths disponibles.
Espero que esto ayude.