Каков наилучший способ остановить цепочку блочных анимаций

Предполагая цепочку анимаций на основе блоков, подобную следующей:

UIView * view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 200, 200)];

//animation 1
[UIView animateWithDuration:2 delay:0 options:UIViewAnimationOptionCurveLinear animations:^{
     view.frame = CGRectMake(0, 100, 200, 200);
} completion:^(BOOL finished){

     //animation 2
     [UIView animateWithDuration:2 delay:0 options: UIViewAnimationOptionRepeat |UIViewAnimationOptionAutoreverse animations:^{
          [UIView setAnimationRepeatCount:1.5];
          view.frame = CGRectMake(50, 100, 200, 200);   
     } completion:^(BOOL finished){

          //animation 3
          [UIView animateWithDuration:2 delay:0 options:0 animations:^{
               view.frame = CGRectMake(50, 0, 200, 200);
          } completion:nil];
     }];
}];

Как лучше всего остановить этот вид анимация? Просто вызвать

[view.layer removeAllAnimations];

недостаточно, потому что это останавливает только выполняющийся в данный момент блок анимации, а остальные будут выполняться последовательно.

7
задан 18 November 2011 в 22:59
поделиться