2017-10-13 212 views
0

對於一個星期,我一直在用故事板中的一個'簡單'佈局掙扎。我需要三個標籤,其中numberOfLines設置爲兩個。在水平UIStackView中嵌入三個UILabel在表格視圖中給出了不同的結果

UIStackView有一些約束將它放置在表格單元格中。左邊的兩個標籤的寬度約束設置爲< = 100,以確保它們不會伸得太遠。我一直在玩弄很多內容擁抱和壓縮阻力,以及諸如setNeedsLayout或layoutIfNeeded之類的東西。你可以在我添加的截圖中看到問題。幾乎沒有任何代碼寫在ViewController中。

當您簽出我在模擬器上添加並運行的測試項目時,您會注意到在向上和向下滾動單元格時,所有單元格看起來都一樣,文本也不會被截斷。這正是我想要的。

Here is a link to the test project I am working in.

Result

回答

1

在原型細胞設定水平及垂直Content Hugging Priority 1000與同爲Content Compression Resistance Priority到1000(左標籤和中間標籤),結果是什麼你可能尋找,使左和中東的標籤小,因爲他們可以和正確的填補了國內空白......

Simulator Screenshot

+0

非常感謝你對HEL讓我出去!你能解釋爲什麼1000的工作優先?這與其他約束是1000有什麼關係? –

+1

使約束具有1000的優先級意味着它基本上是必需的。有時候在做更復雜的佈局時,可以使用較低優先級來制定一些約束條件,這意味着如果系統有兩個約束條件不能滿足,它將能夠以較低的優先級丟棄約束條件,如果兩者具有相同的優先級,則它將基於某些邏輯並在日誌中通知您「無法同時滿足約束」。 – Ladislav

+0

只要「內容擁抱優先級」和「內容壓縮阻力優先級」檢查出這個答案,它很好地解釋了每個人做什麼https://stackoverflow.com/questions/15850417/cocoa-autolayout-content-hugging- vs-content-compression-resistance-priority – Ladislav

相關問題