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

时间:2016-08-31 02:56:00

标签: ios xcode interface-builder uistoryboard

我有一个UILabel,我已经在视图中心的故事板中放置了。它有一些初始文本“点击登录”。

我将标签的值更改为用户登录后的名称。一旦我这样做,标签就不再居中,因为UILabel没有改变大小。

如何在界面构建器中使用autolayout执行此操作?

4 个答案:

答案 0 :(得分:12)

enter image description here

看到这个scrrenshot

1首先选择标签宽度约束

2设置关系大于或等于

3设置默认常量值,我将其设置为10

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

答案 1 :(得分:0)

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

然后设置

label.textAlignment = NSTextAlignmentCenter

答案 2 :(得分:0)

1.显示标签的初始文本 2.按下按钮改变文本后,显示在屏幕中间3.显示约束第三张图像,给出两个约束条件1.top查看2.容器中的中间位置

如果给定标签的固定宽度,更改关系大于等于另一件事。[单击宽度约束,请参见右侧顶部更改关系]

答案 3 :(得分:-1)

我猜测标签没有得到高度和宽度,考虑给出这些约束,然后当你的文本改变时使用这个方法来确定高度和宽度:

    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
}