自动调整大小标签以适合文本

此示例显示了文本内容更改时标签的宽度如何自动调整大小。

http://i.stack.imgur.com/hOUX0.gif

固定左边和上边

只需使用自动布局添加约束来固定标签的左侧和顶侧。

StackOverflow 文档

之后它会自动调整大小。

笔记

  • 此示例来自此 Stack Overflow 答案

  • 不要为宽度和高度添加约束。标签具有基于其文本内容的内在大小。

  • 使用自动布局时无需设置 sizeToFit。示例项目的完整代码如下:

      import UIKit
      class ViewController: UIViewController {
    
          @IBOutlet weak var myLabel: UILabel!
    
          @IBAction func changeTextButtonTapped(sender: UIButton) {
              myLabel.text = "my name is really long i want it to fit in this box"
          }
      }
    
  • 此方法还可用于在此示例中水平正确地间隔多个标签。

http://i.stack.imgur.com/V2Ok9.gif

  • 如果你希望标签换行,则在 IB 中将行数设置为 0,并在代码中添加 myLabel.preferredMaxLayoutWidth = 150 // or whatever。 (该按钮也固定在标签的底部,以便在标签高度增加时向下移动。)

StackOverflow 文档