2010-12-07 116 views
21

rootController内我手动添加一个UITableView,但我不知道我怎么会得到帧的大小...导航栏下面的框架大小?

Controller *rootController = [[Controller alloc] init]; 
UINavigationController *tempNavController = [[UINavigationController alloc] initWithRootViewController:rootController]; 
[self setNavController:tempNavController]; 
[tempNavController release]; 

[window addSubview:[[self navController] view]]; 
[window makeKeyAndVisible]; 

我目前使用的:[[[self navigationController] view] frame]但这并不占“导航栏“高度还是”statusBar“的高度(给我:480)。有没有办法让框架的大小在statusBar/navBar下方,还是必须从上面的数字减去20 + 44?

注:我使用navigationController.navigationBar.frame.size.height得到44

+0

你为什么要手动设置您的表视图的框架呢?如果您只是将表格视图控制器添加到导航控制器的viewControllers数组中,则该表格应该自动适合您的大小,而无需设置表格视图的框架或边界。 – Ryan 2010-12-07 17:39:45

+0

是的,如果您添加表并使其自动调整大小,则默认情况下它应该适合。 – gabaum10 2010-12-07 18:03:04

回答

48

你可以尝试减

[UIApplication sharedApplication].statusBarFrame.size.height 

而且

self.navigationController.navigationBar.frame.size.height 

从你

self.window.frame.size.height 

干杯, 罗格