【发布时间】:2017-01-17 16:13:23
【问题描述】:
func calculateSizeFor(label:UILabel, attributedText: NSAttributedString) -> CGSize {
let constraint:CGSize = CGSize(width: label.frame.size.width,
height: .greatestFiniteMagnitude)
let context:NSStringDrawingContext = NSStringDrawingContext()
let boundingBox = attributedText.boundingRect(with: constraint,
options: [.usesLineFragmentOrigin,
.usesFontLeading],
context: context)
return boundingBox.size
}
高度值总是大于实际高度,导致UILabel 的顶部和底部边缘有额外的填充。而当我尝试为纯文本计算 boundingRect 时,返回的值总是准确的。
我需要预先计算标签高度,以便将其显示为UICollectionViewCell 组件。
我在这里遗漏了什么吗?还有其他方法可以实现吗?
【问题讨论】:
-
我现在遇到了类似的问题,尺寸(宽度和高度)错误。你找到解决办法了吗?
标签: swift cocoa-touch uilabel nsattributedstring