这可能是一个简单的问题,但我有点陷入困境。我在我的标签中给了leading top trailing and bottom
一个按钮约束。在我的情况下,当我删除底部约束时,多行标签正常工作但是当我添加按钮约束时,它不会破坏该行。同样的事情是在另一个地方工作,我也无法理解这是什么问题。
答案 0 :(得分:0)
能够使用多行UILabel,您需要为ContentSize设置适当的高度。
如果UILabel的contentSize不符合高度,则不会 打破!
因此,您需要计算UILabelView文本的高度。您可以通过以下代码执行此操作:
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.size.height
}
let font = UIFont(name: "Helvetica", size: 20.0)
var height = heightForView("This is just a load of text", font: font, width: 100.0)
之后根据文本通过约束增加UILabel的高度。例如:
我希望你已经采用了UILabel的高度约束的IBOutlet。因此,要更新高度,请转到以下代码:
_constLabelHeight.constant = label.frame.size.height;
希望这有帮助!