IOS Autolayout MultiLine ULabel问题
问题描述:
这可能是一个简单的问题,但我有点卡在这个。我在我的一个标签中给出了一个按钮的约束leading top trailing and bottom
。在我的情况下,当我删除底部约束多线标签正常工作,但是当我添加按钮约束,那么它不会破坏线。同样的事情在另一个地方工作,我也无法理解这个问题。IOS Autolayout MultiLine ULabel问题
答
在能多的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的高度。例如:
我希望你已经采取了IBOutlet UILabel的高度约束。所以,要更新高度,请参阅以下代码:
_constLabelHeight.constant = label.frame.size.height;
希望这有助于您!
+0
这是为目标c,我不添加任何约束使用代码。 –
您可以将高度限制设置为大于等于并检查。它可能会解决你的问题。 – Hindu
我该如何设置高度将增加或减少的标签的高度? –
您可以在开始时将高度设置为0,并将标记高度约束设置为> =,因此如果您的文本分配给标签,高度将根据文本高度增加。 – Hindu