これは、ビューの 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];