UIViewAnimationOptionTransitionCurlUpアニメーションでself.viewをリロード(更新)する必要があります。視覚的には、古いビューはカールアップ効果でアニメーション化され、その後に新しい更新されたビューが表示されます。現在のビューのスクリーンショットを作成し、それをすべての上に配置し、アニメーションを適用してロールアップして削除するよりも良いアプローチを見つけることができませんでした。次に、古いビューが丸まった後、更新されたビュー要素が適切に表示されます。
ただし、カールアップは機能しません。トランジションはカールするのではなく、フェードアウトします。どうしたの?コードは以下のとおりです。
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
UIView* screenView = [[UIView alloc] initWithFrame:self.view.frame];
screenView.tag = TAG_SCREENSHOT_VIEW;
screenView.backgroundColor = [UIColor colorWithPatternImage:screenshot];
[self.view addSubview:screenView];
[screenView.superview bringSubviewToFront:screenView];
[UIView transitionWithView:screenView
duration:1.0f
options:UIViewAnimationOptionTransitionCurlUp
animations:^ { screenView.alpha = 0.0f; }
completion:^ (BOOL finished) {
[screenView removeFromSuperview];
}];