2012-10-03 20 views
5

iOS 5.1.1では、UIWindow(IBに疲れている)を作成し、そのフレームを[UIScreen mainScreen] .boundsに設定すると、ステータスバーの下にが表示されます。しかし、同じことをiOS 6とすると、ステータスバーのすぐ下の正しい場所に表示されます。しかし、私はiOSの5.1.1のステータスバー下のウィンドウを移動するために、r.origin.y + = 20を挿入した場合iOS:プログラムでUIWindowのプログラムが誤った位置に作成される

CGRect r = [[UIScreen mainScreen] bounds]; 
self.window = [[UIWindow alloc] initWithFrame: r]; 
self.detailViewController = [[DetailViewController alloc] init]; 
self.window.rootViewController = self.detailViewController; 
[self.window addSubview: detailViewController.view]; 
[self.window makeKeyAndVisible]; 

することは、これが唯一の奇妙取得問題や物事を解決していません。

UIWindowをプログラム作成時にiOSに配置する適切な方法は何ですか?おかげさまで

+0

私は、あなたがIBに戻った場合には、はるかに少ない問題があると確信しています。私は最近、コードでレイアウトの問題を修正しようとしたが、何時間もかかった。私はそれを働かせましたが、後でただのIBで同じことをやろうとしましたが、数回クリックするだけで私の手作業でのコーディングよりもうまくいっていました。私はそれが意図されているツールを使用することが最善であることを学んだ。それ以外の場合は解決しにくいエッジケースに当たってしまいます。 – Brennan

答えて

0

は、私はあなたがおそらくこれを実行する必要があると思う:

self.window.windowLevel = UIWindowLevelStatusBar + 1; 
2

代わりの[[UIScreen mainScreen] bounds]あなたが[[UIScreen mainScreen] applicationFrame]を使用したいと思います。ステータスバーの下にある画面の領域です(表示されている場合)。

関連する問題