ある XIB から別の XIB に移行するためにモーダル トランジションを使用していますが、1 つのことを除いてすべて動作しています。トランジションが始まる瞬間に、前のビューで行ったすべての動きのアニメーションが元に戻されます。 .
私が取り組んでいる方法は次のとおりです。
- (IBAction)chooseInsight:(id)sender {
[CATransaction setCompletionBlock:^{
ContainerViewController *insight = [[ContainerViewController alloc] init];
insight.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:insight animated:YES completion:nil];
}];
[self animateExit];
}
このanimateExit
メソッドは、複数の UI オブジェクトに対して 1 秒間のフレームの動きをアニメーション化し、すべてが画面から飛び出し、無地の背景を残す効果を与えます。私の希望は、この無地の背景が次のビューであるContainerViewController
.
しかし、何が起こるかというと、UI オブジェクトが画面からはみ出し、無地の背景が表示され、突然すべてのボタンとラベルが元に戻り、ContainerViewController
.
なぜそれが起こっているのですか?アニメーションを支援するために、前のビューの画像がキャッシュされていますか? その場合、移行前にキャッシュを更新できますか? または、そうでない場合、このディゾルブをスムーズに機能させるにはどうすればよいですか?
編集:関連がある場合は、アニメーションの最後まで遅らせる方法について、この回答CATransaction
から少し得ました。2 つのアニメーションが問題の原因ではないかという声が頭の片隅にあるのですが、iOS のアニメーションに詳しくないので、その方法を理解することはできません...