似乎不可能讓UILabel堅持以我想要的方式約束一致。前導空間和尾隨空間約束似乎有效,但標籤只是截斷線條而不是擴展到新線條。UILabel沒有可靠包裝
我確實有UILabel
集的numberOfLines
爲0。我也曾嘗試建議這裏列出:UILabel not wrapping text correctly sometimes (auto layout),它似乎並不可靠地工作。我嘗試的最後一件事是將setContentCompressionResistancePriority
屬性設置爲Fitted
和Low
,但它不能同時用於UITableView
中的所有內容。事實上,根據tableview是否刷新,看起來所有的包裝都可以被取消。
我試過的唯一辦法似乎很好,就是將UILabel的preferredMaxLayoutWidth
設置爲常量。我只是希望將它作爲避免計算標籤在運行時應該有多寬的最後手段。當然,有一種方法可以獲得我想要的東西。
已經給出了最好的高度?或在運行時計算高度? –
嘿,你提供了固定的高度和寬度約束 – morroko
它取決於'UILabel'實例和字體的高度,可能標籤會一致地包裝文本(最終它是一個精確計算的值而不是戲劇女王),所以,在你的情況下,當邊緣發生輕微變化會影響最終結果(自動佈局工作漂浮而非整體!)時,可能會出現這種情況,因此,可能需要稍微更改佈局(例如,增加高度1點,或者將字體大小減少5%等等),從這種不平衡的情況推開UILabel。 – holex