正如你在这里看到的,这是一个带有随机文本的UILabel:
UILabel文字的高度太大了。我只想根据需要调整高度,以适应每种不同的宽度内容和大小。添加此扩展程序:
extension UILabel{
func requiredHeight() -> CGFloat{
let label:UILabel = UILabel(frame: CGRect(0, 0, self.frame.width, CGFloat.greatestFiniteMagnitude))
label.numberOfLines = 0
label.lineBreakMode = NSLineBreakMode.byWordWrapping
label.font = self.font
label.text = self.text
label.sizeToFit()
return label.frame.height
}
}
extension CGRect{
init(_ x:CGFloat,_ y:CGFloat,_ width:CGFloat,_ height:CGFloat) {
self.init(x:x,y:y,width:width,height:height)
}
}
还没有工作......这可以在Storyboard中做到吗?我尝试设置宽高比,但是当以编程方式使标签变大时,这会失败。有没有一种简单的方法来设置UILabel的高度以匹配它的内容,甚至可能在故事板中?由于高度与需要的高度不对应,我的整个布局都搞砸了。 UILabel需要例如来自顶部布局的10个点。由于高度很大,UILabel在与故事板中的沙发布局不同的设备上运行时,其设置远远低于所需的设置。