2015-08-30 112 views
2

我正在修改現有的項目以允許屏幕旋轉和多個設備,但每當我在模擬器中旋轉屏幕時,按鈕消失。一個從頭開始的玩具示例工程,但不是活動的項目。什麼事情可能導致這個?所有東西都在自動佈局的Storyboard中。旋轉按鈕消失

回答

1

根據您的問題,首先您必須檢查您的應用程序是否正在使用尺寸等級,另外還有其他的事情,請在改變方向時檢查約束是否突破。

這是不違反約束的問題,下面的程序。但是如果按照下圖可以看到類似的情況,那麼你只需要改變約束。 enter image description here

其次,如果不是,那麼您需要通過選擇Main.storyboard或ViewController.xib來使用size類。

然後,你需要去檢查的文件,並選擇使用尺寸級別下面使用自動佈局

爲了使得具有定向尺寸的多個設備的應用程序派上用場。

請看下面的圖片。

沒有大小類應用

結果UI將如何被顯示在設備。 enter image description here

從文件檢查器啓用大小類。 enter image description here

一旦你做出改變,現在ViewController將能夠根據不同方向的設備改變約束。

wAny-hAny大小類別 - 用於顯示橫向或縱向視圖的所有設備。在這個尺寸類中添加所有必需的控件。 enter image description here

wCompact-hRegular尺寸級別 - 對於人像模式僅所有iPhone。如果您在此尺寸級別中添加了任何控件,則當應用程序處於橫向模式時也不會顯示,也不會在iPad中顯示。 enter image description here

溫妮 - hCompact尺寸級別 - 對於在風景模式下所有iPhone。如果你在這個尺寸的類中添加了任何控件,當應用程序處於縱向模式時,也不會在iPad中顯示。 enter image description here

最終結果顯示在設備或模擬器中。標籤僅在縱向模式下顯示,在橫向模式下不可見。 enter image description here

結論:爲了在橫向模式下顯示標籤,您需要在wAny-hAny尺寸等級中添加標籤,然後更改縱向和橫向模式的約束。 對於iPad,您可以使用wRegular-hRegular

希望它可以幫助你解決你的問題。

+0

這解決了我的問題。我的問題是我選擇了尺寸班,但並不真正瞭解如何進行自適應佈局。按照我的預期,取消選擇課程大小會使自動佈局工作順利進行。我將在下一個項目中使用課堂大小! – drw

0

當您的屏幕旋轉時,您的佈局約束可能會將您的按鈕從屏幕上推開。例如,如果您的按鈕設置爲距離頂部邊距400點,並且您旋轉了高度爲320的屏幕,那麼您的按鈕可能會坐在距離屏幕不遠的y座標中的400個點。

嘗試使用iOS模擬器的調試視圖層次結構工具。用它來檢查按鈕是否離開屏幕。如果是這樣,你將不得不編輯你的佈局約束。 Debug View Hierarchy

+0

我試過,但無濟於事。儘管這是一個非常好的提示,它是一個非常有用的工具。當我發現我做錯了什麼時會更新。 – drw

+0

最重要的是,非常感謝您的詳細解釋! – drw