如何使 UILabel 调整大小以适合文本

How to make UILabel resize to fit text

我有一个 UILabel,我已将其布置在以视图为中心的故事板中。它有一些初始文本 "tap to login".

我将标签的值更改为用户登录后的名称。执行此操作后,标签不再居中,因为 UILabel 没有更改大小。

我如何在界面生成器中使用自动布局来做到这一点?

我猜标签没有获取高度和宽度,请考虑提供这些约束,然后当您的文本更改时使用此方法确定高度和宽度:

    func labelSizeWithString(text: String, maxWidth : CGFloat,numberOfLines : Int) -> CGRect{
    let label = UILabel(frame: CGRectMake(0, 0, maxWidth, CGFloat.max))
    label.numberOfLines = numberOfLines
    label.text = text

    label.sizeToFit()

    return label.frame
}

您可以将 UILabel frame.width 设置得更大,也许与屏幕宽度相同。

然后你设置

label.textAlignment = NSTextAlignmentCenter

1.showing 标签的初始文本 2.After 按下按钮更改文本,显示在屏幕中间 3.Look 约束第三个图像,给定两个约束 1.top 以在容器中查看 2.horizontally 中间

另一件事,如果你给标签固定宽度,改变关系大于等于。[点击宽度约束,看到右上角那里改变关系

查看此截图

1 首先select 你的标签宽度限制

2 设置关系大于等于

3这里设置默认常量值我设置为10

当您更改标签文本时,它会根据文本更改标签的大小。希望对您有所帮助:)