2016-09-01 54 views
0

我使用UINavigationController作爲我的根視圖並將UIViewController實例推送到堆棧上。UINavigationController NavigationBar在視圖頂部的額外空間

我的視圖控制器都來自一個基地,它在viewWillAppear期間繪製徑向漸變背景。

將NavigationBar.translucent屬性設置爲NO/false時,將第一個視圖控制器推入堆棧,將視圖框的y分量設置爲NavigationBar的高度,從而有效地在導航欄和視圖內容之間創建空白區域。後續的視圖控制器被推入堆棧不存在這個問題。

我覆蓋了我的導航控制器中的pushViewController,並且如果navigationController.viewControllers數組爲空,請將NavigationBar.translucent設置爲YES。這樣做會擺脫第一個視圖控制器上的空間,但這不是我想要的,因爲我不想要半透明的導航欄。

我在不同的生命週期階段打印出視圖的框架,只有第一個視圖有y組件修改,其他視圖有框架y設置爲0.我不修改任何視圖控制器中的根視圖框架。

我的問題是,我做錯了什麼?我知道這是第一個視圖控制器的問題,因爲我的覆蓋,但因爲我沒有看到噸這個職位,我認爲我做錯了什麼。

我的問題是與此類似:Container View getting pushed down as if it had a UINavigationBar?

+1

可以告訴你的截圖嗎? –

+0

下面是截圖:https://dl.dropboxusercontent.com/u/6349532/screen.png(沿着頂部的黑色是缺口。) – Cameron

回答

0

您需要設置​​爲false。要修復它嘗試:

InterfaceBuild:https://stackoverflow.com/a/26567240/846780

代碼:self.automaticallyAdjustsScrollViewInsets = NO;

+0

雖然我沒有使用滾動視圖,但該鏈接確實看起來像我的問題。設置這個屬性似乎沒有改變行爲。我通過在viewDidLoad中繪製背景來解決這個問題,但對這種行爲並不滿意。 – Cameron

+0

你可以顯示截圖嗎? – Klevison

+0

下面是截圖:dl.dropboxusercontent.com/u/6349532/screen.png(沿着頂部的黑色是缺口。) – Cameron