我已经尝试了几个小时来找到boundingRect
我有 UILabel 中的字符串,但似乎没有任何效果。
据我了解,boundingRect
返回标签中实际文本的大小,而不是标签的大小或类似的内容。这是真的,对吧?
我有一个UILabel
called messageLabel
其中包含一些换行为无限行数的文本。
我现在的代码是这样的:
let labelRect = (message as NSString).boundingRect(with: messageLabel.frame.size,
options: .usesLineFragmentOrigin,
attributes: [NSFontAttributeName : messageLabel.font],
context: nil)
不幸的是,这为我的文本返回了完全错误的尺寸。
返回多行 UILabel 中文本尺寸的正确方法是什么?
Use:
let sizeToFit = CGSize(width: messageLabel.frame.size.width,
height: CGFloat.greatestFiniteMagnitude)
let textSize = messageLabel.sizeThatFits(sizeToFit)
Anyway, the way you did it should work as well (you can see on playground both functions return same size):
我在游乐场中添加了一个示例视图,因此您可以看到,标签具有黑色边框,文本适合内部,并且比标签小。大小都是电脑正确的sizeToFit
and boundingRect
方法(但是boundingRect
返回未舍入的值)。我已经使用这个计算出的尺寸在文本下创建了一个绿色背景视图,并且它适合它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)