2015-06-29 95 views
0

我在縱向子視圖(故事板場景):如何處理不同設備方向的不同視圖?

enter image description here

,我想,當設備旋轉到橫向移動和調整這樣的:

enter image description here

什麼處理這個問題的最好(或最簡單的)方法應該是? 我正在考慮以下選項:

  1. 創建不同的分離的xib文件(一個用於人像,另一個用於景觀),並加載相應的一個?
  2. 當方向改變時,旋轉+翻譯+調整子視圖的大小?
  3. 直接創建兩個子視圖(水平底部和垂直左側)並根據方向隱藏相應的對象?

我需要此方案的幫助,我找不到適用於我的解決方案。此外,如果我錯過了其他任何選項,我會很感激知道。

預先感謝

編輯:這是一個應用程序中定位iOS 7及以上。我沒有使用尺寸類功能,只是自動佈局。

編輯2:

  • 設置一個新的幀的子視圖。
  • 這個選項與選項2有什麼區別?

    +0

    的UIPresentationController類是專門爲此設計爲我明白它。但是,我不太熟悉它寫出完整的答案。有一些方法可以用來響應尺寸級別的變化,這些變化在某些設備上會有。 蘋果公司目前不鼓勵蘋果公司(我認爲)基於任何尺寸的類來製作用戶界面的改變,所以如果你想在手機上這種行爲,這可能是不平凡的?但我不會肯定地說。 – Braains

    +0

    @Braains謝謝你的回覆,我忘了提及我正在開發iOS 7+,而我只是使用自動佈局,我沒有利用大小類... – AppsDev

    +0

    我認爲這有一個更簡單的解決方案。您可以使用超級視圖將視圖綁定到左側和底部。接下來,取IBOutlet視圖的高度和寬度約束。設備旋轉時更改該值。如果你願意,你也可以用動畫更新約束。如果你喜歡這個想法,請告訴我,如果你想知道更多關於它的信息。 – Tejvansh

    回答

    0

    選項(2)將是你最好的選擇。根據方向存儲兩組約束並安裝/卸載它們。 如果您正在使用大小班級,則可以在IB中完成此操作。 (1)過量,(3)不必要。

    在人像模式中,你有你的子視圖以下限制:

    • 左水平空間的限制,右兩側
    • 的底側
    • 高度約束的垂直空間的限制

    將設備旋轉到橫向方向後,您將更改約束條件,以便您最終得到以下約束條件瓦特:

    • 用於頂部垂直空間的限制和底側
    • 甲水平空間約束用於左側
    • 寬度約束
    +0

    也謝謝。輪換之後,約束如何受到影響? – AppsDev

    +1

    他們不受影響。每個視圖的新位置將在旋轉後根據相同的約束條件進行計算。如果您希望視圖在方向更改後有不同的位置,則必須相應地更新您的約束。看到我更新的答案,以瞭解如何 –

    相關問題