尺寸适合

假设你的 storyboard 上有一个 UILabel,你在 ViewController.swift / ViewController.m 中创建了一个 IBOutlet 并命名为 labelOne

要使更改易于显示,请在 viewDidLoad 方法中更改 labelOne 的 backgroundColortextColor

当你想根据存储在其中的内容自动调整标签大小时,使用 sizeToFit 功能。

迅速

labelOne.backgroundColor = UIColor.blueColor()
labelOne.textColor = UIColor.whiteColor()
labelOne.text = "Hello, World!"
labelOne.sizeToFit()

Swift 3

labelOne.backgroundColor = UIColor.blue
labelOne.textColor = UIColor.white
labelOne.text = "Hello, World!"
labelOne.sizeToFit()

Objective-C

labelOne.backgroundColor = [UIColor blueColor];
labelOne.textColor = [UIColor whiteColor];
labelOne.text = @"Hello, World!";
[labelOne sizeToFit];

上面代码的输出是:

StackOverflow 文档

正如你所看到的,没有任何变化,因为文本非常适合 labelOne。sizeToFit 仅更改标签的框架。

让我们将文本更改为稍长的文本:

labelOne.text = "Hello, World! I’m glad to be alive!"

现在,labelOne 看起来像这样:

StackOverflow 文档

即使调用 sizeToFit 也不会改变任何东西。这是因为默认情况下,UILabel 显示的 numberOfLines 设置为 1.让我们在故事板上将其更改为零:

StackOverflow 文档

这次,当我们运行应用程序时,labelOne 正确显示:

StackOverflow 文档

numberOfLines 属性也可以在 ViewController 文件中更改:

// Objective-C
labelOne.numberOfLines = 0; 

// Swift
labelOne.numberOfLines = 0