如何计算具有给定字体的2行UILabel的高度?
我知道,通用的多行标签有一种方法可以通过
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)行的标签的高度?
优雅的意思是:也许有人能找到比这更好的解决方案:
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)感谢你的帮助!
发布于 2018-01-30 20:54:38
下面将给出两行文本的大小。用所选字体替换字体:
let attrs: [NSAttributedStringKey: Any] = [.font: UIFont.systemFont(ofSize: 17)]
let twoLineHeight = "\n".size(withAttributes: attrs).height发布于 2022-11-06 10:32:50
Swift 5版本的@rmaddy的解决方案
let attrs: [NSAttributedString.Key: Any] = [.font: UIFont.systemFont(ofSize: 17)]
let twoLineHeight = "\n".size(withAttributes: attrs).heighthttps://stackoverflow.com/questions/48530257
复制相似问题