我正在使用XCode + IB來佈局一個非常簡單的視圖。頂部有一個標準的NavigationController導航欄。在主視圖內部是另一個視圖,其中包含一個標籤,然後在下面的表格中佔據屏幕的其餘部分。我將標籤放在這個容器視圖中,因爲我想讓導航欄下方的區域具有背景顏色(灰色)。ios界面生成器佈局奇怪
問題是,即使主視圖從navigationBar的下方開始,標籤的容器視圖在導航欄下方存在。有點。您會看到,標籤出現在導航欄下方,但灰色背景以某種方式位於導航欄下方。如果我將標籤視圖的高度設置爲75px,它就會開始出現在導航欄下方。 (狀態欄和導航欄爲22 + 44)
禁用自動佈局。
那麼,爲什麼視圖容器在導航欄的背景下面開始? (但不是它的內部標籤?)
自IOS7以來,我在ViewController中使用它,以便內容從導航欄下面開始,而不是在它下面。
if ([self respondsToSelector:@selector(edgesForExtendedLayout)]){
self.edgesForExtendedLayout = UIRectEdgeNone;
}
我意識到或者我可以設置主視圖的背景或使標籤尤其是大型也許並給它一個背景,但我想看看這是爲什麼不先工作。
編輯: 我給這個視圖添加了一個功能,當某些UITextFields打開鍵盤時,主視圖會向上移動125px。有趣的是,除了標籤的視圖容器外,整個視圖都移動了。當父母的觀點上下移動時,這種觀點仍然存在。然而標籤本身上下移動。所以再次,中間的觀點似乎掛窗口,而不是實際的主視圖...
關於你的實際問題,很難明確你所指的是什麼。聽起來就像你已經創建了一個UIView並定位它,以便它的y-coord正好位於導航欄的下方,並且你放置在UIView中的UILabel以某種方式呈現出UIView的邊界(即下面)這是沒有意義的) – Wizkid 2014-09-03 18:16:56
標籤的容器視圖位於0,0 ...因爲UIRectEdgeNone被設置,所以它應該將其置於導航欄的正下方。標籤位於此容器視圖內,標籤正確顯示在整個屏幕上。但是,容器視圖的背景設置爲灰色,它不可見。顯然,它不在UIEdgeRectNone邏輯中,在導航欄下面?標籤和容器視圖是這樣脫節的,也沒有意義。 – Miro 2014-09-03 18:50:26