2010-12-07 198 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 

乾杯, 羅格