Swift:在没有文本时以编程方式使用 numberOfLines 扩展 UILabel
Swift: Expand UILabel When There is No Text Using numberOfLines Programmatically
我有一个 UILabel
,希望它的最大行数为 2。我使用了 numberOfLines
属性,它运行良好。但是,当文本少于两行时,UILabel
会收缩以将其包裹起来。有什么方法可以使 UILabel
扩展到等于两行的高度,即使没有文字?
P.S。我正在使用自动布局。
您可以使用以下代码计算身高:
Swift 5
let attrs: [NSAttributedString.Key: Any] = [.font: UIFont.systemFont(ofSize: 17 /* your size*/)]
let twoLineHeight = "\n".size(withAttributes: attrs).height
label.frame.height = twoLineHeight
请注意viewDidLayoutSubviews方法中的标签高度设置
P.S。如果您使用约束,您可以使用上述值设置高度约束。
以编程方式,使用 setContentCompressionResistancePriority(_:for:)
并将其设置为较大的数字,例如 1000。您也可以在界面生成器中执行此操作
我有一个 UILabel
,希望它的最大行数为 2。我使用了 numberOfLines
属性,它运行良好。但是,当文本少于两行时,UILabel
会收缩以将其包裹起来。有什么方法可以使 UILabel
扩展到等于两行的高度,即使没有文字?
P.S。我正在使用自动布局。
您可以使用以下代码计算身高:
Swift 5
let attrs: [NSAttributedString.Key: Any] = [.font: UIFont.systemFont(ofSize: 17 /* your size*/)]
let twoLineHeight = "\n".size(withAttributes: attrs).height
label.frame.height = twoLineHeight
请注意viewDidLayoutSubviews方法中的标签高度设置
P.S。如果您使用约束,您可以使用上述值设置高度约束。
以编程方式,使用 setContentCompressionResistancePriority(_:for:)
并将其设置为较大的数字,例如 1000。您也可以在界面生成器中执行此操作