创建一个 UILabel

带框架

当你知道要为标签设置的确切尺寸时,可以使用 CGRect 框架初始化 UILabel

迅速

let frame = CGRect(x: 0, y: 0, width: 200, height: 21)
let label = UILabel(frame: frame)
view.addSubview(label)

Objective-C

CGRect frame = CGRectMake(0, 0, 200, 21);
UILabel *label = [[UILabel alloc] initWithFrame:frame];
[view addSubview:label];

使用自动布局

当你希望 iOS 在运行时动态计算其帧时,可以在 UILabel 上添加约束。

迅速

let label = UILabel()
label.backgroundColor = .red
label.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(label)

NSLayoutConstraint.activate([
    //stick the top of the label to the top of its superview:
    label.topAnchor.constraint(equalTo: view.topAnchor)

    //stick the left of the label to the left of its superview
    //if the alphabet is left-to-right, or to the right of its 
    //superview if the alphabet is right-to-left:
    label.leadingAnchor.constraint(equalTo: view.leadingAnchor)

    //stick the label's bottom to the bottom of its superview:
    label.bottomAnchor.constraint(equalTo: view.bottomAnchor)

    //the label's width should be equal to 100 points:
    label.widthAnchor.constraint(equalToConstant: 100)
])

Objective-C

UILabel *label = [[UILabel alloc] init];

使用 Objective-c +视觉格式语言(VFL)

  UILabel *label = [UILabel new];
  label.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview label];
  // add horizontal constraints with 5 left and right padding from the leading and trailing

  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-5-[labelName]-5-|"
                                                                    options:0
                                                                    metrics:nil
                                                                      views:@{@"labelName":label}]];
  // vertical constraints that will use the height of the superView with no padding on top and bottom
  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[labelName]|"
                                                                    options:0
                                                                    metrics:nil
                                                                      views:@{@"labelName":label}]]

VFL 文档可以在这里找到

创建标签后,请务必通过自动布局设置尺寸。如果操作不正确,Xcode 将显示错误。

使用 Interface Builder

你还可以使用 Interface Builder 将 UILabel 添加到 Storyboard.xib 文件中,方法是从对象库面板拖动 Label 并将其放入画布中的视图中:

StackOverflow 文档

Storyboard.xib 不是以编程方式为 UILabel 指定框架(位置和大小),而是允许你使用“ 自动布局” 向控件添加约束。

要访问从 storyboardxib 创建的此标签,请创建此标签的 IBOutlet。

Interface Builder 和 View Controller 之间的链接

一旦你将 UILabel 添加到你的 Storyboard.xib 文件,你可以通过按 Control ⌃然后在 UILabel 之间拖动鼠标到你的 ViewController 链接到你的代码,或者你可以拖动到代码,同时右键单击它以获得它同样的效果。

StackOverflow 文档

在属性对话框中,你可以设置 UILabel 的名称,并将其设置为 strongweak。有关 strongweak 的更多信息,请参阅

另一种方法是以编程方式使插座如下:

迅速

@IBOutlet weak var nameLabel : UILabel!

Objective-C

@property (nonatomic, weak) IBOutlet UILabel *nameLabel;