2010-11-27 71 views
4

我正在開發iOS應用程序。我的應用程序委託將我的視圖控制器加載到窗口上並正確顯示,除了一個警告:我的視圖控制器上的視圖在Y軸上的位置不夠遠,狀態欄會截斷我的頂視圖。我改變了我的視圖控制器的XIB文件以適應這個,所以現在我所有的視圖都沿着Y軸開始20個像素。在初始加載時,一切看起來都很好。當我旋轉時,我的視圖比他們應該低20個像素(由於我的佈局更改以適應第一次加載)。我想知道的是如何更好地處理視圖控制器中的位置以處理狀態欄高度。iOS視圖控制器在旋轉後移動

回答

1

我已經通過不直接/編程方式將視圖渲染到窗口中來解決了這個問題。我所做的是創建一個RootViewController,它在兩個方向上放置並正確對齊,並在RootViewController中具有所有其他視圖。

發生這種情況的原因是應用程序的窗口始終是整個屏幕(包括頂部的狀態欄)。如果您嘗試填寫窗口,則必須處理並補償狀態欄和其他鑲邊。如果您管理根視圖內的所有視圖,會更容易。

0

您的解決方案取決於您如何創建項目。

如果您在創建項目時使用了基於視圖的應用程序模板,那麼您將在MainWindow.xib中擁有您的視圖控制器。假設您在該NIB中爲您的視圖控制器啓用了狀態欄屬性(即選擇灰色或黑色),則您的視圖控制器應該在最初(啓動時)以及旋轉設備後正常工作。

如果使用的是基於窗的應用程序模板,當您創建的項目,你必須將下面的代碼行添加到您的應用程序委託的didFinishLaunchingWithOptions:

myViewController.view.frame = window.screen.applicationFrame; 

不知何故神奇地把事情成立正確。

相關問題