2

コントローラー「A」の一部の要素で UIView アニメーションを開始し、コントローラー B にトランジションを提示すると、以前に送信されたアニメーションが開始されないことに気付きました。例えば:

//apply a UIView animation before transitioning
[UIView animateWithDuration: 1 delay:0 options:UIViewAnimationOptionCurveEaseOut             animations:^{
        someUIView.frame = newFrame;
 }completion:nil];
//transition from  controller A to controller B
controllerB.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController: controllerB animated:YES];

アニメーションが既に開始されているときにコントローラー B に切り替えようとすると、A のアニメーションが停止します。この動作は、使用するトランジション タイプに依存することに気付きました。たとえば、「UIModalTransitionStyleCoverVertical」を使用すると問題は発生しません。何かご意見は?

4

1 に答える 1

0

アニメーション完了ブロックから controllerB を提示するだけです

[UIView animateWithDuration: 1 
                      delay:0
                    options:UIViewAnimationOptionCurveEaseOut
                 animations:^{
                     someUIView.frame = newFrame;
                }completion:^{
                   //transition from  controller A to controller B
                   controllerB.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
                   [self presentModalViewController: controllerB animated:YES];
 }];
于 2012-08-05T14:51:27.680 に答える