ios - 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
并获得一个高度,该高度将根据给定的宽度参数在尽可能多的行上适合标签的文本。有可能做这样的事情吗?
解决方案
你可以试试
let fixedWidth = UIScreen.main.bounds.width
let newSize = lbl.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
lbl.size = CGSize(width:fixedWidth, height: newSize.height)
推荐阅读
- python - 如果完成并获得所需结果,则取消挂起的异步任务
- c++ - 我如何让这个重复?
- amazon-mws - AWS 销售合作伙伴 API - 以产品 Feed 格式导出列表
- c++ - 如何在 cmake 中使用fuzzylite?
- regex - DLP 国家 ID 的正则表达式
- java - Android:没有适配器附加
- python - Python 逻辑回归(PatsyError:模型缺少所需的结果变量)
- c++ - 河内塔程序中的堆栈泄漏
- python-3.x - 无法在 Visual Studio 代码中运行使用 kivy 和 python 制作的应用程序
- sql - 如何在 SQL Server 中使用逻辑运算符从字符串编写查询?