4

iPhoneのウィンドウ全体を占めるU​​IViewがあります。横向きに回転すると、予想どおり、エッジが所定の位置に収まるまで小さな黒いバーが表示されます。

その uiview を画面よりも大きくしたいので、回転しても黒いバーは表示されませんが、通常は画面外にあるビューの部分が表示されます。ビューのフレームと境界を広げようとしましたが、うまくいかないようです。

誰もこれを成功させましたか?

4

4 に答える 4

4

これを実現するには、2 つのことを行う必要があります。

まず、ウィンドウのルート ビュー コントローラーは常にそのビューのサイズをウィンドウのサイズに変更します。したがって、大きなビューはルート ビュー コントローラーのビューのサブビューである必要があり (サイズが縮小されないようにするため)、ルート ビュー コントローラーのビューはclipsToBoundsNO に設定する必要があります。clipsToBounds実際、大きなビューのすべての先祖はNO に設定する必要があります。

次に、ウィンドウが回転すると、ウィンドウの境界外に表示されるビューを明示的に非表示にするために、黒いサブビューが与えられます。これらの黒いサブビューをルート ビュー コントローラーのビューの前に配置します。次のように、ルート ビュー コントローラーのビューを前面に移動する必要があります。

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    UIWindow *window = self.view.window;
    [window bringSubviewToFront:window.rootViewController.view];
}
于 2012-04-06T03:16:33.700 に答える