Почему пауза между анимацией animateWithDuration и блоками завершения?

Следуя рекомендациям Apple, я связываю анимации UIView, помещая последующие вызовы -animationWithDuration:animation:в блок completion:другого вызова aanimateWithDuration:animation:completion:, вот так:

[UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
    // Scale the controllers' views down.
    self.view.transform = CGAffineTransformScale(self.view.transform, 0.8, 0.8);
} completion:^(BOOL finished) {
    // Transition to the new view and push on the new view controller.
    [UIView transitionWithView:self.view duration:1 options:UIViewAnimationOptionCurveLinear | UIViewAnimationOptionTransitionFlipFromLeft animations:^{
        [self pushViewController:viewController animated:NO];
    } completion:^(BOOL finished) {
        [UIView animateWithDuration:scaleDuration delay:0 options:UIViewAnimationOptionCurveLinear animations:
^{
            // Scale back to the original size.
            self.view.transform = CGAffineTransformScale(self.view.transform, 1.25, 1.25);
        } completion:nil];
    }];
}];

Все анимации выполняются в правильном порядке, но есть крошечный задержка между ними, особенно перед звонком -transitionWithView:duration:options:animations:completion:. Как сгладить переходы между шагами анимации?

7
задан theory 6 May 2012 в 05:21
поделиться