iPhoneのウィンドウ全体を占めるUIViewがあります。横向きに回転すると、予想どおり、エッジが所定の位置に収まるまで小さな黒いバーが表示されます。
その uiview を画面よりも大きくしたいので、回転しても黒いバーは表示されませんが、通常は画面外にあるビューの部分が表示されます。ビューのフレームと境界を広げようとしましたが、うまくいかないようです。
誰もこれを成功させましたか?
iPhoneのウィンドウ全体を占めるUIViewがあります。横向きに回転すると、予想どおり、エッジが所定の位置に収まるまで小さな黒いバーが表示されます。
その uiview を画面よりも大きくしたいので、回転しても黒いバーは表示されませんが、通常は画面外にあるビューの部分が表示されます。ビューのフレームと境界を広げようとしましたが、うまくいかないようです。
誰もこれを成功させましたか?
これを実現するには、2 つのことを行う必要があります。
まず、ウィンドウのルート ビュー コントローラーは常にそのビューのサイズをウィンドウのサイズに変更します。したがって、大きなビューはルート ビュー コントローラーのビューのサブビューである必要があり (サイズが縮小されないようにするため)、ルート ビュー コントローラーのビューはclipsToBounds
NO に設定する必要があります。clipsToBounds
実際、大きなビューのすべての先祖はNO に設定する必要があります。
次に、ウィンドウが回転すると、ウィンドウの境界外に表示されるビューを明示的に非表示にするために、黒いサブビューが与えられます。これらの黒いサブビューをルート ビュー コントローラーのビューの前に配置します。次のように、ルート ビュー コントローラーのビューを前面に移動する必要があります。
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
UIWindow *window = self.view.window;
[window bringSubviewToFront:window.rootViewController.view];
}