2017-09-08 20 views
-1

我在肖像模式(2線)包裝的標籤,而不是在橫向(1號線):如何設置自動佈局這樣的UILabel調整大小和其他視圖中移動需要

portrait

landscape

我想設置自動佈局,以便標籤可以根據需要調整大小,並根據標籤向上或向下移動其他視圖。但是,我不太明白如何在iOS故事板中進行設置。任何幫助表示讚賞。

Thanx提前。

+0

您必須設置視圖相對於標籤的垂直間距。 –

+1

這很簡單。 _你不明白嗎?你做了什麼,發生了什麼或未能做出迴應? – matt

+0

我是iOS開發新手,所以對我來說並不容易(但)。我已將行數設置爲0,打開Word Wrap,並將Leading側綁在屏幕的左側邊緣,拖尾側綁在屏幕的右側邊緣。但是,當我預覽縱向和橫向模式時,UILabel不會更改。一旦我獲得了UILabel的工作,我將疊加其他視圖。 – NLam

回答

2

如果我的理解是正確的那裏,你正在尋找兩件事情:

  1. 調整基於使用故事板的文字長度的標籤,這可以通過進入屬性檢查器和設置Lines來實現0Line break ModeWordWrap。另附圖片供參考 here。 只是一些額外的信息,你也可以通過編程實現它,使用下面的代碼:

    myLabel.numberOfLines = 0 
    myLabel.lineBreakMode = .byWordWrapping 
    
  2. 移動基於您的標籤的尺寸等觀點,這可以通過對意見設置的約束來實現你想要被推送。你可以參考蘋果的文檔here,容易掌握並展示如何一步一步做到這一點。

+0

感謝您提供有關Apple文檔的鏈接。我遇到的問題最多的是UILabel(請參閱上面的評論),但重置爲建議的約束似乎已經成功了。我不明白它與我所做的有什麼不同,但我會進一步調查。此外,故事板似乎並沒有完全顯示應用程序在模擬器中生成並運行後的視圖。在模擬器中一切看起來不錯,但視圖都在故事板中混雜。這是典型的嗎? – NLam

+0

不客氣。所以,建議約束重置的重要性在於它覆蓋了給定約束並添加了滿足視圖的系統定義約束。約束應該由用戶決定,而不是由系統決定。在閱讀你最後一個對你的問題的評論後。我認爲你忘了將標籤的頂部和底部的約束添加到周圍的視圖中,我認爲系統在重置爲建議的約束時爲您添加了約束。故事板應該接近您的模擬器/設備中的視圖。你使用的是什麼版本的Xcode? –

+0

我想給你的一個建議是,如果你使用的是iOS 9或更高版本,你可以利用UIStackView,它幾乎可以處理視圖之間的約束,並且相對容易使用。這是學習[堆棧視圖]的好資源(https://www.raywenderlich.com/160646/uistackview-tutorial-introducing-stack-views-2) –

相關問題