2013-10-02 29 views
2

我正在將應用程序轉換到iOS7。整個應用程序的所有視圖底部有一個44像素的空白空間,似乎是底部的工具欄或其他東西,但我不想顯示底部的工具欄。此空間也存在於具有底部工具欄的視圖上,而工具欄僅顯示在其上方。如何使用ViewDeckController在iOS7視圖中修復空的44px空間?

顯示的紅色空間實際上是黑色視圖背後的視圖。無論我將黑色視圖的框架設置爲何種大小,都始終顯示紅色空間。我也隱藏了plist中的狀態欄,所以不知道這是否是一個神器,或者是否與導航欄有關,因爲它們通常都是44px的高度。

我看過渡指南,並沒有發現任何工作。任何想法可能導致這一點以及如何解決?

UPDATE: 我試圖設置edgesForExtendedLayout = UIRectEdgeAll和extendedLayoutIncludesOpaqueBars = YES(也試過NO),沒有效果。當我查看導航控制器的子視圖時,它將UIToolBar顯示爲隱藏,但是顯示它包含確切區域中的幀,即使存在自動佈局約束,視圖也拒絕調整大小。

更新2: 這實際上是ViewDeckController(https://github.com/Inferis/ViewDeck)中的問題,並將它設置它的核心景區範圍的方式。

enter image description here

回答

1

我相信它與UINavigationBar做。嘗試切換Storyboard中的以下選項並查看是否可以解決問題。即,「擴展邊緣」選項:

enter image description here

這些選項也可在代碼上的UIViewController的edgesForExtendedLayoutextendedLayoutIncludesOpaqueBars屬性中設置。

+0

我已經嘗試設置edgesForExtendedLayout = UIRectEdgeAll和extendedLayoutIncludesOpaqueBars = YES(也嘗試了NO),沒有任何效果。當我查看導航控制器的子視圖時,它將UIToolBar顯示爲隱藏,但顯示它包含視圖拒絕調整大小的確切區域中的框架。 – mtg169

1

如果您正在轉換到iOS 7,您應該使用自動佈局約束來固定底部佈局指南。控制從您的視圖拖動到底部佈局指南並從彈出菜單中選擇垂直空間。

在iOS 7中使用幀更困難,也是過去的方式。

自動佈局一開始很難掌握,但一旦感受到它就非常強大。

+0

忘了提及我也嘗試過自動佈局,它沒有工作。這似乎是導航控制器工具欄的問題。工具欄是隱藏的,但視圖不會調整大小。這就像它認爲它不存在時那樣。 – mtg169

1

這實際上是第三方庫ViewDeckController(https://github.com/Inferis/ViewDeck)的問題以及它爲IIViewDeckControllerIntegrated設置centerViewBounds的方式。在更改爲IIViewDeckControllerContained並正確查看視圖大小後,我能夠弄清楚它。

在IIViewDeckController.m中,只需爲iOS7返回self.referenceBounds就像它爲IIViewDeckControllerContained一樣。

+0

你應該得到這個答案不止一分,IMO。我有狀態欄的這個問題。我知道它與ViewDeckController有關,但無法找到它。謝謝你可能救了我的時間! – dsmDev