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?
答案 0 :(得分:1)
在init方法之前设置UINavigationController的框架不起作用,因为尚未加载和显示UINavigationController。仅在控制器及其视图加载后才设置框架。
您应该在UINavigationController的viewDidLoad方法中设置表(以及所有类似的初始化)。如果你这样做,你将不会看到任何这类问题。