2015-10-08 63 views
10

我有一個簡單的佈局,其中包含多個視圖和約束來根據需要定位和調整它們的大小。當我將應用程序部署到模擬器或設備時,所有視圖的X,Y和寬度都具有適當的大小。另一方面,高度始終爲0.根據超級視圖,所有視圖都具有比例高度。僅在將方向更改爲橫向並返回縱向後,才能正確顯示縱向佈局

現在,如果我將方向翻轉到風景然後回到人像,所有東西都會正確顯示(高度不再爲0)。

我使用比例高度相同的邏輯以前,我開始更新到Xcode的7

編輯您可以從得到的.xib後發現這個問題與新創建的視圖控制器:http://1drv.ms/1M81EUQ

+0

需要在你的約束是如何設置的詳細信息 - 你可以共享代碼或故事板文件?這聽起來像你錯過了一個約束。 – Ben

+0

你是否改變了代碼中有關視圖的任何內容?這聽起來像是你正在添加一些決定代碼高度的內容,但是直到設備旋轉後纔會重新繪製視圖。也許你忘了layoutif需要什麼地方? – JWKothe

+0

@ProgrammingBonn不,我沒有改變任何代碼。我只是在XIB中放置佈局,然後加載它。 –

回答

1

如果您使用自動遮罩大小調整或使用自動佈局來解決此問題,您必須設置關於更改方向的不同視圖更新方法調用。

+0

不知道我正確理解你的意思,但我使用自動佈局,如果這就是你的建議。 –

+0

我以爲你沒有在你的視圖中設置一個固定的高度和寬度的IBoutlet。並請將底部間距設置爲等於或小於。 –

+0

不知道我明白。你介意編輯這個。在問題中鏈接的xib文件並修改它,然後將它附加到某處,以便我可以看到您的意思?謝謝。 –

1

您的.xib已配置爲啓用大小類,但您的視圖和約束全部配置爲僅適用於緊湊寬度,常規高度。

wC hR is Checked, Any Any is not

我的經歷,改變了意見和約束適用於任何寬度,任何高度,這解決了與景觀佈局的問題。

Download the modified .xib file here

我建議使用Xcode中7的預覽助手查看與自動佈局工作時,因爲這將讓你看到多個設備,在多個方向同時。在這種情況下,這確實有助於顯示佈局在縱向上是正確的,但不是在橫向上。

這是我在你的.xib看到你提供 Preview of populated portrait but empty landscape views

而且隨着 Preview showing populated portrait and landscape

這怎麼會發生在我的.xib的變化?一種方法是,您可能會意外地將故事板編輯器設置爲特定的大小類別。如果您在編輯器底部看到藍色邊框,則您添加的任何內容都將配置爲僅爲該特定尺寸類別安裝。您可以點擊顯示的尺寸等級將其更改爲任何h任何可以返回到默認模式。

Blue bar at the bottom of the storyboard editor

+0

感謝您花時間看看它。雖然我的問題並不是它在橫向模式下不能工作(這個頁面只能用於肖像)。問題是,爲了正確顯示縱向頁面,我需要進行方向更改,因此當它切換回縱向時,所有內容都正確顯示。此外,縱向預覽都很好,只有在實際設備或模擬器上運行時纔會出現問題。 –

相關問題