2017-11-16 15 views
-1

Codes sind wie folgt:Ich setze den toValue der Rotation auf 2 * PI, aber warum sind diese Ansichten nach der Animation nicht horizontal?

CABasicAnimation *rotateWhenBoom = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; 
rotateWhenBoom.fromValue = @0; 
rotateWhenBoom.toValue = @(M_PI*2.0); 
rotateWhenBoom.duration = 0.3f; 
rotateWhenBoom.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; 

CAAnimationGroup *boom = [CAAnimationGroup animation]; 
boom.animations = @[[self moveOutWithBtn:btn], rotateWhenBoom]; 
boom.fillMode = kCAFillModeForwards; 
boom.removedOnCompletion = NO; 

und die Wirkung: effect

Vor der Animation die Ansichten alle horizontal sind. Ich füge eine Rotationsanimation zu diesen Ansichten hinzu, und der toValue der Rotation ist 2 * PI. Warum sind sie nach der Animation nicht horizontal? Vielen Dank im Voraus !!

+0

Was ist das Problem? Der gepostete Effekt wird erwartet oder wie es jetzt aussieht! Willst du damit sagen, dass die Ansichten nach der Animation auf ihre ursprüngliche Position zurückgehen? Wenn das der Fall ist, benutze removeOnCompletion –

+0

Ich habe nicht abgestimmt Ihre Frage –

+0

@SandeepBhandari Vor der Animation sind die Ansichten alle horizontal. Ich füge eine Rotationsanimation zu diesen Ansichten hinzu, und der toValue der Rotation ist 2 * PI. Warum sind sie nach der Animation nicht horizontal? – LeeG4ng

Antwort

0

Ihre letzten zwei Zeilen Code: boom.fillMode = kCAFillModeForwards; boom.removedOnCompletion = NO;

bedeuten, dass die Schicht an dem Endzustand der Animation bleibt und dass die Animation nicht automatisch aus der Schicht entfernt wird, wenn es abgeschlossen ist. Sie wollen wahrscheinlich die letzte Zeile boom.removeOnCompletion = NO

Ein guter Führer für CALayer und CAAnimation, die dies erklärt, entfernen: https://www.objc.io/issues/12-animations/animations-explained/

Verwandte Themen