Ios Swift:以编程方式使用numberOfLines在没有文本时展开UILabel

Ios Swift:以编程方式使用numberOfLines在没有文本时展开UILabel,ios,swift,autolayout,uilabel,word-wrap,Ios,Swift,Autolayout,Uilabel,Word Wrap,我有一个ui标签,希望它最多有2行。我使用了numberOfLines属性,它工作得非常好。但是,当文本少于两行时,UILabel会收缩以包裹文本。是否有任何方法可以使ui标签扩展到等于两行的高度,即使没有文本 另外,我正在使用自动布局。您可以使用以下代码计算高度: Swift 5 let attrs:[nsattributestring.Key:Any]=[.font:UIFont.systemFont(大小:17/*您的大小*/)] 让twoLineHeight=“\n”.size(带属性:

我有一个
ui标签
,希望它最多有2行。我使用了
numberOfLines
属性,它工作得非常好。但是,当文本少于两行时,
UILabel
会收缩以包裹文本。是否有任何方法可以使
ui标签
扩展到等于两行的高度,即使没有文本


另外,我正在使用自动布局。

您可以使用以下代码计算高度:

Swift 5

let attrs:[nsattributestring.Key:Any]=[.font:UIFont.systemFont(大小:17/*您的大小*/)]
让twoLineHeight=“\n”.size(带属性:attrs).height
label.frame.height=twoLineHeight
请注意viewDidLayoutSubviews方法中的标签高度设置


另外,如果您使用的是约束,则可以使用上面的值设置高度约束。

编程时,使用
setContentCompressionResistancePriority(uu2;:for:)
并将其设置为高数值,如1000。您也可以在interface builder中执行此操作

为什么不添加高度约束?@DavidSteppenbeckPhD我知道这一点,但这感觉像是一种解决方法。如果我以后想更改字体或其大小,我还必须相应地更改高度约束。