CatransformLayer no es compatible con la animación implícita?
-
30-10-2019 - |
Pregunta
Aquí está mi código de animación:
CGFloat zDistance = 850;
CGFloat scaleFactor = BACK_COVER_WIDTH / self.transformLayer.bounds.size.width;
CATransform3D rotation = CATransform3DMakeRotation(M_PI, 0.0, 1.0, 0.0);
CATransform3D scale = CATransform3DMakeScale(scaleFactor, scaleFactor, 0.0);
CATransform3D transform = CATransform3DConcat(rotation, scale);
transform.m34 = 1.0 / -zDistance;
CGPoint location = CGPointMake(CGRectGetMidX(self.layer.frame), CGRectGetMidY(self.layer.frame));
[CATransaction begin];
[CATransaction setAnimationDuration:1.0];
self.transformLayer.transform = transform;
self.transformLayer.position = location;
[CATransaction commit];
self.transformLayer
es un CATransformLayer
Con dos subcapas, uno para el frente y otro para la parte posterior (estoy creando un efecto de "volteo"). Sin embargo, este código solo establece la posición y transforma sin animación. Entonces pensé que tal vez transform
No es compatible con la animación implícita, así que lo saqué y solo intenté establecer la posición, pero eso tampoco animó (y sé con certeza que position
admite la animación implícita).
¿Estoy haciendo algo mal o lo hace? CATransformLayer
¿Simplemente no es compatible con la animación implícita? La documentación no dice nada sobre él, no lo respalda, por lo que supongo que sí.
Editar: esto es para Mac OS X, no iOS
No hay solución correcta