Stoppen Sie eine UIView-Animation mit automatischer Reverse / unendlicher Wiederholung mit einem BOOL / Completion-Block

Ich bin einrichten die folgenden UIView animateWithDuration: Methode, mit der Absicht, die Einstellung meiner animationOn BOOL an anderer Stelle im Programm zu stornieren, die unendliche geloopt wiederholen. Ich hatte den Eindruck, dass die completion block aufgerufen werden würde, jedes mal, wenn ein Zyklus der animation endet, aber dies scheint nicht der Fall zu sein.

Ist die completion je block genannt, in einer sich wiederholenden animation? Und wenn nicht, gibt es einen anderen Weg, ich kann zu stoppen diese animation von außerhalb dieser Methode?

- (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];
                         }
    }];
}

InformationsquelleAutor der Frage Luke | 2012-12-21

Schreibe einen Kommentar