在旋转设备之前,UITableView不会正确调整大小

时间:2012-08-31 13:22:40

标签: objective-c xcode uitableview

我在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];
}

但是,当应用加载时,表的大小不正确(仅在横向模式下):enter image description here

通过纵向旋转回横向后,它看起来很好:enter image description here

我做错了什么?

2 个答案:

答案 0 :(得分:1)

-setItemBoundaries放入-viewWillAppear:方法

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

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

violá ......

答案 1 :(得分:0)

did...

...在旋转发生后调用,因此可能在绘制完表后调用。

尝试,

willRotateFromInterfaceOrientation

...在重绘表之前设置新边界。