CatransformLayer non supporta l'animazione implicita?
-
30-10-2019 - |
Domanda
Ecco il mio codice di animazione:
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
è un CATransformLayer
Con due sublayer, uno per la parte anteriore e uno per la parte posteriore (sto creando un effetto "flip"). Tuttavia, questo codice imposta la posizione e trasforma senza animazione. Quindi l'ho pensato forse transform
Non supporta l'animazione implicita, quindi l'ho tirato fuori e ho appena provato a impostare la posizione, ma neanche questo (e lo so per certo position
supporta l'animazione implicita).
Sto facendo qualcosa di sbagliato o fa CATransformLayer
Non supportare l'animazione implicita? La documentazione non dice nulla al riguardo che non lo supporta, quindi suppongo che lo faccia.
Modifica: questo è per Mac OS X, non iOS
Nessuna soluzione corretta