title: Why the pause between animateWithDuration animation and completion blocks?
body: <p>Following Apple's recommendations, I'm chaining UIView animations by putting subsequent calls to <code>-animationWithDuration:animation:</code> in the <code>completion:</code> block of another call to <code>aanimateWithDuration:animation:completion:</code>, like so:</p>
  
  <pre><code>[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];
      }];
  }];
  </code></pre>
  
  <p>The animations all execute the right order, but there is a tiny delay between them, especially before the <code>-transitionWithView:duration:options:animations:completion:</code> call. How do I smooth out the transitions between animation steps?</p>