ios - 如何在 swift 中以编程方式创建动态标签大小?

标签 ios swift dynamic uilabel frame

我正在尝试在 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/

相关文章:

ios - 如果一个变异函数设置它自己等于另一个函数,这意味着什么

android - jBox2d android 绘制动态物体

python - python模块的动态加载

ios - sdk inside iOS framework swift

objective-c - 比较 NSDecimalNumber 的不同方法

ios - swift SKSpriteNode : Detect Tap/DoubleTap/LongPress

ios - TableView 不显示整个 tableViewCell(高度)

swift - 如何在 UITabBar 顶部创建圆角

angular - 如何更新 Angular 中提供者提供的值?

ios - UIScrollView、PanGestureRecognizer 和 iOs 4