2014-03-12 19 views
0

因此,我們的應用程序是使用XIB界面構建的,而不是故事板。我們有適用於iPhone和iPad的XIB。xibs在iOS 7.1更新後顯示不正確

自iOS7.1更新以來,iPhone xib現在在界面構建器中更大,並且在設備上部署時太高。

身高都是錯的,XIB現在太高了。例如,當設置爲填充時,背景會顯示在視圖之外。在手機上部署時,所有內容都會在頂部導航欄的高度上下移。

如果我在界面生成器中爲視圖添加/刪除頂部/底部條,事情就會發生變化,但不是有意義的。我的應用程序有一個導航欄,如果我告訴界面生成器它有一個導航欄,那麼xib的高度增長了80個像素左右。如果我告訴界面生成器它沒有導航欄,那麼所有東西都會正確地向上移動,但視圖的高度仍然很高,背景和底部附近的東西會脫離屏幕。

因此,對於非常模糊的問題,但我們正在揪出頭髮。

UPDATE - 看起來不透明的導航欄修復了一半的問題。我們將每個界面設置爲半透明導航欄。這些似乎沒有佔用IOS7.1的空間,但它們在IOS7.0中。

現在的問題仍然是高度。它仍然看起來內部高度被破壞或從一個新的起源開始。

鑑於沒有負載,在具有不透明導航欄的圖,在iPod Touch:

  • self.view.frame.origin.y被表示0

  • self.view。 frame.size.height被示出256

  • 導航欄origin.y = 20

  • 導航欄size.height = 32

這總計308,缺少12個像素。

+0

這是一個猜測,但我今天在某處閱讀它!蘋果已經做了什麼,當你有一個導航控制器連接到你的界面,那麼y座標的原點是64像素。即導航欄爲44個像素,狀態欄爲20個像素。 – Harsh

+0

即使達到IOS7,一切工作正常。到目前爲止,界面構建器中的半透明導航欄似乎先前佔用了空間,但現在它們不(這實際上是有意義的)。因此,在界面生成器中切換到不透明導航欄修復了一半高度問題。然而,這個觀點仍然很高。在界面構建器中,視圖底部的小部件約束在設備底部顯示約20像素。我有一個接口,它只是一個UIWebView,它佔用了整個視圖,並且一旦部署,底部就會有一個20px的條帶。 – Halsafar

回答

0

在IB或以編程方式創建自動佈局約束,將每個XIB文件中主視圖的頂部與「頂部佈局指南」對齊,並將視圖底部對齊到「底部佈局指南」。這解決了在我的幾個應用中從iOS 6移動到iOS 7時非常類似的問題。

+0

這不起作用。 UI的界面構建器看起來很好。部署時,所有內容都會向上移動20px,在每個視圖的底部留下一條無法填充的條帶。即使是設置爲佔用整個視圖的UIWebView也會在底部切斷。 – Halsafar