2010-11-27 7 views
4

iOSアプリケーションで作業しています。私のアプリケーションのデリゲートは、ビューコントローラをウィンドウにロードして正しく表示しますが、1つの注意点を除いて、ビューコントローラのビューはY軸上で十分に下がらず、ステータスバーがトップビューをクリップします。これに対応するために、私はビューコントローラのXIBファイルを変更したので、今私のビューはすべてY軸の下に20ピクセルで始まります。最初のロードでは、すべてが正常に見えます。私が回転すると、私のビューは、(最初​​の負荷に対応するために私のレイアウトが変更されたために)20ピクセル下になります。私が思っているのは、ステータスバーの高さを処理するためにView Controller内の位置をよりうまく処理する方法です。iOS Viewコントローラが回転した後にシフトする

答えて

1

この問題は、ビューを直接的またはプログラム的にウィンドウに表示しないことで処理しました。私が代わりに行うのは、RootViewControllerを作成し、それを両方向で正しく配置し、RootViewController内の他のすべてのビューを作成することです。

これは、アプリケーションのウィンドウが常に画面全体(ステータスバーを含む)に表示されるためです。ウィンドウを埋めると、ステータスバーやその他のクロムを処理して補償する必要があります。ルートビュー内のすべてのビューを管理すると簡単になります。

0

解決方法は、プロジェクトの作成方法によって異なります。

プロジェクトの作成時にビューベースのアプリケーションテンプレートを使用した場合は、MainWindow.xibにビューコントローラがあります。 View Controllerは、NIB内のView Controllerに対してStatus Bar属性が有効(つまり、グレーまたはブラック選択)されている場合、デバイスを回転させた後でも、最初(起動時)と正常に動作するはずです。プロジェクトを作成したときは、ウィンドウ・ベースのアプリケーション・テンプレートを使用した場合

、アプリデリゲートのdidFinishLaunchingWithOptionsに次のコード行を追加する必要があります:何とか魔法のように物事がセットアップされます

myViewController.view.frame = window.screen.applicationFrame; 

正しく

関連する問題