正如你在这里看到的,这是一个随机文本的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设置自己远远低于在故事板中的不同设备上运行它时所需的设置 .
1 回答
我认为您可以在故事板中设置UILabel的顶部和底部约束
在这个例子中,独立于“LABEL BIG”的字体大小,总是与10个点的顶部布局分开,“LABEL SMALL”总是从“LABEL BIG”垂直分开8个点 .