-animationWithDuration:animation:
Apple の推奨事項に従って、次のように への別の呼び出しのcompletion:
ブロックにへの後続の呼び出しを配置することで、UIView アニメーションを連鎖させて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:
ます。アニメーションのステップ間のトランジションを滑らかにするにはどうすればよいですか?