Animation End Callback for CALayer?
-
03-07-2019 - |
Domanda
Usando iPhone CALayer, voglio un'animazione di rotazione per il mio livello spirituale, ma voglio anche una richiamata per la fine dell'animazione, calda per farlo?
Penso che forse dovrei usare CABasicAnimation, ma non so come fare la rotazione usando CABasicAnimation, qualche idea?
Grazie
Soluzione
Se si imposta un delegato per un CAAnimation, è possibile aggiungere il metodo di callback:
- (void)animationDidStop:(CAAnimation *)theAnimation finished:(BOOL)flag
Viene chiamato quando l'animazione è completa. Cerca esempi di animazioni rotanti tramite una matrice di trasformazione CGAffineTransform, come da questo link:
http://iphonedevelopment.blogspot.com/2008/10/demystifying- cgaffinetransform.html
Altri suggerimenti
A parte, puoi anche fare lo stesso tipo di callback per un'animazione UIView avvolgendo la chiamata per ruotare una UIView nel seguente blocco di codice
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5f];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(rotationAnimationHasFinished:finished:context:)];
// Rotate the view here
[UIView commitAnimations];
e quindi la definizione di un metodo delegato
- (void)rotationAnimationHasFinished:(NSString *)animationID finished:(BOOL)finished context:(void *)context;
{
// Handle the completion of the animation
}
all'interno del tuo delegato che farà tutto il necessario dopo il completamento dell'animazione.