[UIScreen mainScreen].applicationFrame = {{0,0}, {300,480}} を確認すると、iOS6 (シミュレーターではなく実際のデバイス) で iPhone アプリを iPad で実行したときに、これを注意深く見てください。320 ではなく 300 です。もちろん、高さは 460 (480-status_bar_height=460) にする必要があります。どうしてこうなったのかわかりません。同時に、[UIScreen mainScreen].bounds の値は正しい {{0,0}, {320, 480}} です。
ただし、iPad シミュレーター 6.1 で実行した場合 [UIScreen mainScreen].applicationFrame = {{0,20}, {320, 460}} は、iOS6 の iPhone 4 でアプリを実行した場合と同じです。
これはバグですか?正しい画面解像度を取得するにはどうすればよいですか?
また変なものを見つけました。protrait 方向アプリを横画面で実行すると、ナビゲーション バーの高さは 44.0 になるはずですが、実際には 32.0 であり、これは iOS 6.1 でも発生します。