首页 > 解决方案 > UILabel 找到适合宽度的高度

问题描述

我有一个UILabel我需要有一个特定的文本大小和框架宽度(匹配屏幕宽度)。我希望能够将标签的高度设置为适合所有标签文本的最小高度,而不会将其切断。

我尝试了以下方法:

let label = UILabel()
label.text = longText
label.numberOfLines = 0
label.sizeToFit()

但是,如果将整个字符串放在一行上并且文本在达到屏幕宽度时被截断,longText这将不起作用。"This string is really long, longer than the screen width"sizeToFit...

然后我尝试在调用后设置标签的宽度以匹配屏幕宽度sizeToFit。这让换行但不调整标签的高度,所以字符串在第一行之后仍然被切断。

此外,设置label.adjustsFontSizeToFitWidth = true不起作用,因为我需要标签具有特定的字体大小。

我想要的是某种函数,比如label.minimumHeightForWidth:我可以作为宽度参数传递UIScreen.main.bounds.width并获得一个高度,该高度将根据给定的宽度参数在尽可能多的行上适合标签的文本。有可能做这样的事情吗?

标签: iosswiftuilabel

解决方案


你可以试试

let fixedWidth = UIScreen.main.bounds.width 
let newSize = lbl.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
lbl.size = CGSize(width:fixedWidth, height: newSize.height)

推荐阅读