對於一個星期,我一直在用故事板中的一個'簡單'佈局掙扎。我需要三個標籤,其中numberOfLines設置爲兩個。在水平UIStackView中嵌入三個UILabel在表格視圖中給出了不同的結果
UIStackView有一些約束將它放置在表格單元格中。左邊的兩個標籤的寬度約束設置爲< = 100,以確保它們不會伸得太遠。我一直在玩弄很多內容擁抱和壓縮阻力,以及諸如setNeedsLayout或layoutIfNeeded之類的東西。你可以在我添加的截圖中看到問題。幾乎沒有任何代碼寫在ViewController中。
當您簽出我在模擬器上添加並運行的測試項目時,您會注意到在向上和向下滾動單元格時,所有單元格看起來都一樣,文本也不會被截斷。這正是我想要的。
Here is a link to the test project I am working in.
非常感謝你對HEL讓我出去!你能解釋爲什麼1000的工作優先?這與其他約束是1000有什麼關係? –
使約束具有1000的優先級意味着它基本上是必需的。有時候在做更復雜的佈局時,可以使用較低優先級來制定一些約束條件,這意味着如果系統有兩個約束條件不能滿足,它將能夠以較低的優先級丟棄約束條件,如果兩者具有相同的優先級,則它將基於某些邏輯並在日誌中通知您「無法同時滿足約束」。 – Ladislav
只要「內容擁抱優先級」和「內容壓縮阻力優先級」檢查出這個答案,它很好地解釋了每個人做什麼https://stackoverflow.com/questions/15850417/cocoa-autolayout-content-hugging- vs-content-compression-resistance-priority – Ladislav