将UILabel高度调整为文字
我有一些标签,我想调整他们的高度的文字,这是我现在写的代码
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
}
编辑:
这个问题不在这段代码中,所以我的问题本身就是我的问题。 它可能对其他人有用!
我只是把它放在一个操场上,它适用于我。
import UIKit
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
}
let font = UIFont(name: "Helvetica", size: 20.0)
var height = heightForView("This is just a load of text", font: font, width: 100.0)
Swift 3:
func heightForView(text:String, font:UIFont, width:CGFloat) -> CGFloat{
let label:UILabel = UILabel(frame: CGRect(x: 0, y: 0, width: width, height: CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = font
label.text = text
label.sizeToFit()
return label.frame.height
}
如果您使用AutoLayout ,则只能通过配置UI调整UILabel
高度。
对于iOS8或更高版本
UILabel
设置约束前导/尾随 UILabel
的行从1更改为0 对于iOS7
UILabel
添加包含高度 Equal
Greater than or Equal
UILabel
的行从1更改为0 您的UILabel
会根据文字自动增加高度
如果你愿意,我可以创建这个扩展
extension UILabel {
func setSizeFont (sizeFont: CGFloat) {
self.font = UIFont(name: self.font.fontName, size: sizeFont)!
self.sizeToFit()
}
}
链接地址: http://www.djcxy.com/p/28205.html