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 回答