Animation End Rückruf für CALayer?
-
03-07-2019 - |
Frage
Mit iPhone CALayer, ich möchte eine Rotation Animation für meinen Geist Schicht, aber ich möchte auch einen Rückruf für die Animation Ende, heiß, das zu tun?
Ich denke, vielleicht sollte ich CABasicAnimation verwenden, aber ich weiß nicht, wie Rotation zu tun CABasicAnimation verwenden, irgendeine Idee?
Danke
Lösung
Wenn Sie einen Delegaten für eine CAAnimation einstellen, können Sie die Callback-Methode hinzufügen:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
Das wird aufgerufen, wenn die Animation abgeschlossen ist. Geben Sie für Beispiele von Animationen über eine CGAffineTransform Transformationsmatrix drehen, wie pro diesen Link:
http://iphonedevelopment.blogspot.com/2008/10/demystifying- cgaffinetransform.html
Andere Tipps
Als Nebenwirkung, können Sie auch die gleiche Art von einem Rückruf für eine UIView Animation durch Ihren Anruf Umwickeln einen UIView in dem folgenden Code-Block zu drehen
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(rotationAnimationHasFinished:finished:context:)];
// Rotate the view here
[UIView commitAnimations];
und dann eine delegierte Methode definieren
- (void)rotationAnimationHasFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context;
{
// Handle the completion of the animation
}
in Ihrem Delegaten, wird tun, was Sie brauchen, um, nachdem die Animation abgeschlossen ist.