Sto configurando il seguente metodo UIView animateWithDuration:
, con l'intenzione di impostare il mio BOOL animationOn
altrove nel programma per annullare quella ripetizione a ciclo infinito. Avevo l'impressione che il blocco completion
venisse chiamato ogni volta che termina un ciclo dell'animazione, ma questo non sembra essere il caso.Arresta un'animazione UIView a ripetizione automatica/ripetizione infinita con un BOOL/blocco di completamento
Il blocco completion
è mai stato chiamato in un'animazione ricorrente? E se no, c'è un altro modo in cui posso fermare questa animazione al di fuori di questo metodo?
- (void) animateFirst: (UIButton *) button
{
button.transform = CGAffineTransformMakeScale(1.1, 1.1);
[UIView animateWithDuration: 0.4
delay: 0.0
options: UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAutoreverse | UIViewAnimationOptionRepeat
animations: ^{
button.transform = CGAffineTransformIdentity;
} completion: ^(BOOL finished){
if (!animationOn) {
[UIView setAnimationRepeatCount: 0];
}
}];
}
Questo non ha funzionato, ho paura. L'animazione continua anche dopo l'applicazione della modifica della trasformazione. (Ho impostato '.transform' su' CGAffineTransformMakeScale (1.0, 1.0) '). – Luke
Ho trovato qualcos'altro che potrebbe funzionare. Ho aggiornato la mia risposta. Puoi provarlo? –
Oh, l'hai capito da solo :) Grazie per aver accettato la mia risposta in ogni caso –