UINavigationController和UITableView框架问题

时间:2011-02-17 15:46:22

标签: uitableview uinavigationcontroller frame

self.tableView = [[UITableView alloc] initWithFrame:self.view.frame style:UITableViewStylePlain];

当我有UINavigationController和UITabBarController时,如何从视图中获得正确的大小?

为了解决这个问题,我必须这样做:

CGRect frame = self.view.frame;
frame.origin.y -= [UIApplication sharedApplication].statusBarFrame.size.height;
tableView = [[UITableView alloc] initWithFrame:frame style:UITableViewStylePlain];

我总是要手动设置我的视图/ tableviews的高度,以便适应UINavigationController,这真的很烦人

这看起来有点奇怪,为什么它不会自动减去状态栏的高度?这是默认样式,而不是透明状态栏。

由于

UPDATE:如果我在init方法之后分配tableView,只需将框架设置为self.view.frame就可以了。 Wuzzup wit dat?

1 个答案:

答案 0 :(得分:1)

在init方法之前设置UINavigationController的框架不起作用,因为尚未加载和显示UINavigationController。仅在控制器及其视图加载后才设置框架。

您应该在UINavigationController的viewDidLoad方法中设置表(以及所有类似的初始化)。如果你这样做,你将不会看到任何这类问题。