Konfiguruję następującą metodę UIView animateWithDuration:
, z zamiarem ustawienia mojego animationOn
BOOL w innym miejscu w programie, aby anulować to nieskończone zapętlone powtórzenie. Miałem wrażenie, że blok completion
będzie wywoływany za każdym razem, gdy skończy się cykl animacji, ale nie wydaje się, żeby tak było.Zatrzymaj animację UIView z automatycznym powrotem/nieskończoną liczbą powtórzeń z blokiem BOOL/ukończenia
Czy blok completion
kiedykolwiek wywołał powtarzającą się animację? A jeśli nie, czy istnieje inny sposób na zatrzymanie tej animacji spoza tej metody?
- (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];
}
}];
}
To nie zadziałało, obawiam się. Animacja wciąż trwa po zastosowaniu zmiany w transformacji. (Ustawiłem '.transform' na' CGAffineTransformMakeScale (1.0, 1.0) '). – Luke
Znalazłem coś, co może zadziałać. Zaktualizowałem swoją odpowiedź. Czy możesz tego spróbować? –
Och, wymyśliłeś to sam :) Dzięki za zaakceptowanie mojej odpowiedzi i tak –