我正在尝试在 Swift 中以编程方式创建标签,但我遇到的问题是,根据数据模型,文本数量可能会发生变化,从而改变标签的大小。通常我会在知道文本之前创建这样的标签:
headerLabel.frame = CGRect(x: 0, y: 0, width: screenSize.width/2.5, height: screenSize.height/45)
headerLabel.center = CGPoint(x: screenSize.width/2, y: 245)
但在这种情况下,文本可以是从一行到一个段落的任意数量,因此对高度进行硬编码是行不通的。如何创建标签以容纳任意数量的文本?
最佳答案
在将文本提供给标签后,您可以访问标签固有属性,然后可以提供框架。
swift 3:
let label = UILabel()
label.text = "Your text here"
label.textAlignment = .center
label.font = UIFont.systemFont(ofSize: 14)
label.frame = CGRect(x:0,y:0,width:label.intrinsicContentSize.width,height:label.intrinsicContentSize.height)
您可以根据 intrinsicContentSize 检查一些条件。
希望对您有所帮助。
关于ios - 如何在 swift 中以编程方式创建动态标签大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46478244/