尺寸適合

假設你的 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