ユーザーがデバイスを回転させたときに、あるUIViewから別のUIViewに移行しようとしています。これ自体は難しくありません。ただし、回転後にまったく異なるコンテンツを表示しているため、UIKitが提供するデフォルトのアニメーション(現在表示されているビューを回転させる)は概念的に不適切です。
アニメーションを無効にしてビューを突然入れ替えるだけでも許容できますが、アプリの残りの部分に組み込んでいる洗練度をはるかに下回っています。私がしたいのはこれです:
shouldAutorotateToInterfaceOrientation:が呼び出されたときに、回転前のユーザービューの不透明なビューのスナップショット(必要に応じてスクリーンショット)を取得したいと思います。次に、回転が完了し、システムがビュー変換などを適用した後、保存したスナップショットビューを表示し、選択した遷移を新しいビューにアニメーション化できます。完了したら、スナップショットを解放して次に進むことができます。
高価ではないこれを行う方法はありますか?
私が考えることができる他の唯一のオプションは、デフォルト以外のすべての方向でNOを返し、次に独自のアニメーションと変換を適用して反応することです。システムを使用してこれを実行することをお勧めしますが、自分で実行すると、手動で回転したビューなどで「未定義」のキーボード動作が発生する可能性があると考えています。
考え?