【发布时间】:2014-09-30 13:44:27
【问题描述】:
我有一些标签,我想根据文本调整它们的高度,这是我现在为此编写的代码
func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
let label:UILabel = UILabel(frame: CGRectMake(0, 0, width, CGFloat.max))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.ByWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
编辑:
问题不在这段代码中,所以我的修复是在问题本身。它可能对其他人仍然有用!
【问题讨论】:
-
看看 NSString UIKit 添加的内容,那里有一些方法可以根据需要计算大小,而无需创建 UILabel。
-
@VladimirGritsenko 'sizeWithFont' 方法在 Swift 中不可用:(
-
我承认我不是 Swift 专家,但我相信您可以添加自己的桥接方法。仍然值得创建 UILabel 来计算大小。
-
@TheBurgerShot
sizeWithFont可能不适用于 SwiftString但它可以在NSString上使用,您应该仍然可以调用它。 -
最后,错误是不同的,与此方法无关。虽然这可能对其他人仍然有帮助。
标签: ios swift height uilabel frame