これは、ビューの nib で選択したサイズが untilviewWillAppear: (BOOL) animated
メソッドで使用されるためです。すると、正しいサイズになります。
viewDidLoad
ただし、が呼び出されるため、次のコードを使用して正しいサイズにすることができます。
CGSize viewSize = [[UIScreen mainScreen] bounds].size;
viewSize = CGSizeMake(viewSize.width, viewSize.height - STATUS_BAR_HEIGHT);
STATUS_BAR_HEIGHT
は 20 ですが、アプリによって異なります。その行を追加する必要がある場合とない場合があります。
編集
境界を使用する際の問題mainScreen
は、向きが変わってもフレームが変わらないことです。そのように設計されています。次の方法で解決できます。
CGSize viewSize = [[UIScreen mainScreen] bounds].size;
if(UIInterfaceOrientationIsLandscape(CURRENT_ORIENTATION)){
viewSize = CGSizeMake(viewSize.height, viewSize.width - STATUS_BAR_HEIGHT);
} else {
viewSize = CGSizeMake(viewSize.width, viewSize.height - STATUS_BAR_HEIGHT);
}
CURRENT_ORIENTATION
は[[UIApplication sharedApplication] statusBarOrientation];