私は、ユーザーがビデオを視聴できるようにするユニバーサル ipad/iphone アプリを持っており、それを全画面モードに拡張できます。
を実装(void) willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
しました。そのメソッドで、ビュー要素が横向きか縦向きかに応じて、ビュー要素に対してさまざまな setFrame 呼び出しを実行します。
通常の使用ではすべて正常に動作しているように見えます。つまり、前後に回転すると正常に動作します。
しかし、ユーザーが縦向きモードで開始し、ビデオを開始し、全画面表示モードに移行し、横向きに切り替えた後、ビデオが停止した場合、多くの場合、要素のサイズが適切に変更されません。それらは、ポートレート モードであるかのように、サイズが固定されているように見えます。
次にポートレート モードに切り替えてからランドスケープに戻すと、ビューが正しくリセットされます。
奇妙な部分は、私が実装(void)exitedFullscreen:(NSNotification*)notification
し、そこに向きを出力したところ、正しく表示されたことです。現在の向きに基づいてビュー要素をリセットするコードも呼び出しますが、まだこの問題が発生しています。
別の関連する問題は、回転を処理するときに、ビューが画面の上に行きすぎて、実際にはデバイスの上部にあるステータス バーの下に移動することがあります。
編集これが最新の例です。全画面ビデオの再生中に横向きモードに回転し、全画面ビデオを終了すると、ビューの上部にあるナビゲーション バーに問題が発生します。