首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >给定字体的2行UILabel的高度

给定字体的2行UILabel的高度
EN

Stack Overflow用户
提问于 2018-01-30 20:48:00
回答 2查看 708关注 0票数 2

如何计算具有给定字体的2行UILabel的高度?

我知道,通用的多行标签有一种方法可以通过

代码语言:javascript
运行
复制
let label = UILabel()
label.numberOfLines = 0
label.text = "Some multiline [...] text"

let constraintSize = CGRect(width: aWidth, height: CGFloat.greatestFiniteMagnitude)
let size = aLabel.sizeThatFits(constraintSize)

现在,我想知道的是:如果不知道将在标签中写入的文本,而只知道字体,我如何才能精确地计算跨越2(或一般为x)行的标签的高度?

优雅的意思是:也许有人能找到比这更好的解决方案:

代码语言:javascript
运行
复制
let label = UILabel()
label.numberOfLines = 2
label.text = "Some really, really, really, [...] long text to make sure it spans at least 2 lines even for the tiniest fonts."

let constraintSize = CGRect(width: aWidth, height: CGFloat.greatestFiniteMagnitude)
let size = aLabel.sizeThatFits(constraintSize)

感谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-01-30 20:54:38

下面将给出两行文本的大小。用所选字体替换字体:

代码语言:javascript
运行
复制
let attrs: [NSAttributedStringKey: Any] = [.font: UIFont.systemFont(ofSize: 17)]
let twoLineHeight = "\n".size(withAttributes: attrs).height
票数 8
EN

Stack Overflow用户

发布于 2022-11-06 10:32:50

Swift 5版本的@rmaddy的解决方案

代码语言:javascript
运行
复制
let attrs: [NSAttributedString.Key: Any] = [.font: UIFont.systemFont(ofSize: 17)]
let twoLineHeight = "\n".size(withAttributes: attrs).height
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48530257

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档