指定行数后,我想以编程方式创建UILabel。我正在使用Swift。我有以下代码:

let newLabel = UILabel()
newLabel.text = "Hello There"
newLabel.font = UIFont.systemFont(ofSize: 16)
newLabel.numberOfLines = 2
newLabel.lineBreakMode = .byWordWrapping
newLabel.sizeToFit()
newLabel.frame.origin.x = 100
newLabel.frame.origin.y = 500
view.addSubview(newLabel)


问题在于标签的文本在一行上,而不是两行上。我必须使用sizeToFit,因为fontSize实际上是动态的(它并不总是16)。如何确定标签为2行?谢谢。

最佳答案

您未指定frame的确切UILabel。因此您的视图仅获得所需的任何宽度。您可以使用它来获取结果:

newLabel.frame = CGRect(x: 100, y: 500, width: newLabel.frame.width - 1, height: newLabel.frame.height * 2)


但这不是很好,我建议使用AutoLayout

10-08 12:27