我在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];
}
但是,当应用加载时,表的大小不正确(仅在横向模式下):
通过纵向旋转回横向后,它看起来很好:
我做错了什么?
答案 0 :(得分:1)
将-setItemBoundaries
放入-viewWillAppear:
方法
- (void)viewDidLoad
{
// [self setItemBoundaries];
}
和
- (void)viewWillAppear:(BOOL)animated {
[self setItemBoundaries];
}
和violá ......
答案 1 :(得分:0)
did...
...在旋转发生后调用,因此可能在绘制完表后调用。
尝试,
willRotateFromInterfaceOrientation
...在重绘表之前设置新边界。