2009-08-18 35 views
0

在viewDidLoad方法我增加它們的任意組合,我無法得到它的工作:如何確保tableViewController視圖佔用全屏?

CGRect appFrame = [[UIScreen mainScreen] applicationFrame]; 
[[self tableView] setBounds:appFrame]; 
// self.view.frame = appFrame; 
// self.view.bounds = appFrame; 
// [[self tableVew] setFrame:appFrame]; 
self.view.autoresizingMask = UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth; 

總是有我以前的屏幕,顯示通過頂部的20像素的差距。

回答

3

20px是狀態欄的空間(文檔位於-applicationFrame覆蓋此)。你關閉了狀態欄(使用-setStatusBarHidden:animated:)?

+0

我沒有隱藏狀態欄。它仍然可見。 與我的舊屏幕顯示的差距就在狀態欄下方。 你可能是對的,它與狀態欄有關。 – Bryan 2009-08-18 20:38:21

+0

問題是applicationFrame爲狀態欄提供了20px的偏移量。然後,您將該框架應用於視圖,該視圖本身位於另一個視圖內(該視窗如果沒有其他可能),並且您的新框架與您的父框架偏移20px。您實際上想要將您的框架設置爲父框架的大小(或最終是窗口的框架)。該窗口已經全屏。你在這裏提到的「上一屏」是什麼? – 2009-08-18 21:25:46

+0

感謝羅布。前一個屏幕是另一個viewController - 我的主要遊戲屏幕。我正在使用的屏幕是結果屏幕。您的建議在這裏立即引導到我的解決方案下面。謝謝。 – Bryan 2009-08-18 21:49:32

0

而不是將邊界設置爲應用程序框架: CGRect appFrame = [[UIScreen mainScreen] applicationFrame]; 我將邊界設置爲應用程序邊界: CGRect appFrame = [[UIScreen mainScreen] bounds];

然後我將其設置爲我的桌面視圖的邊界 [[self tableView] setBounds:appFrame];