回転するUIWindowにオーバーレイビューを追加する方法
-
06-07-2019 - |
質問
一部の(すべてではない)画面で回転するアプリがあり、すべての画面に表示されるオーバーレイとしてUIViewを追加したいので、ウィンドウに追加すると思いました。現在の問題は、デバイスを回転させると画面は回転するが、オーバーレイビューは回転しないことです。
また、2つのUIViewControllerを使用してみました。1つは通常のもの、もう1つはオーバーレイビュー用でしたが、それに対する大きな期待はありませんでした。実際に回転するUIViewControllerは1つだけです。
それでは、オーバーレイを回転させるために回転する各View Controllerにコードを追加することなく、インターフェイスでオーバーレイを回転させる方法を教えてください。
解決
あなたの疑いは正しいと思います。各View Controllerにサブビューを追加する必要があります。理由はわかりませんが、複数のビューをウィンドウのサブビューとして追加すると、最初のビューのみがそのビューを取得します-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientationが各方向の変更で呼び出されます。
これを試したことはありませんが、オーバーレイビューコントローラーだけでなく、ナビゲーションコントローラーを含むウィンドウのサブビューとして追加する単一の親ビューコントローラーを作成できる可能性があります。たぶん-shouldAutotrotateToInterfaceOrientationを正しく呼び出すでしょう。繰り返しますが、これは試していないため仮想的なものですが、ウィンドウにオーバーレイビューを追加するだけでは機能しないことは確かです。
よろしく、