0

デバイスが適切な位置に留まるように回転した後も、viewDidLoad で UITableView のフレームを設定しています。これが私のコードです:

- (void)viewDidLoad
{
    [self setItemBoundaries];
}

- (void) setItemBoundaries {
    if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) {
        self.raceTable.frame = CGRectMake(20,502,728,472);
    }
    else {
        self.raceTable.frame = CGRectMake(20,20,492,708);
    }
}

- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {
    [self setItemBoundaries];
}

ただし、アプリが読み込まれると、テーブルのサイズが正しくありません (横向きモードのみ)。ここに画像の説明を入力

縦向きから横向きに戻すと、見た目は問題ありません。ここに画像の説明を入力

私は何を間違っていますか?

4

2 に答える 2

1

-setItemBoundaries-viewWillAppear:メソッドに入れる

- (void)viewDidLoad
{
    // [self setItemBoundaries];
}

と:

- (void)viewWillAppear:(BOOL)animated {
    [self setItemBoundaries];
}

そしてヴィオラ...

于 2012-08-31T13:25:51.860 に答える
0
did...

...回転が発生した後に呼び出されるため、テーブルが描画された後に呼び出される可能性があります。

試す、

willRotateFromInterfaceOrientation

...テーブルが再描画される前に新しい境界を設定します。

于 2012-08-31T13:25:29.613 に答える