创建一个 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
并将其放入画布中的视图中:
Storyboard
或 .xib
不是以编程方式为 UILabel
指定框架(位置和大小),而是允许你使用“ 自动布局” 向控件添加约束。
要访问从 storyboard
或 xib
创建的此标签,请创建此标签的 IBOutlet。
Interface Builder 和 View Controller 之间的链接
一旦你将 UILabel
添加到你的 Storyboard
或 .xib
文件,你可以通过按 Control ⌃
然后在 UILabel
之间拖动鼠标到你的 ViewController
链接到你的代码,或者你可以拖动到代码,同时右键单击它以获得它同样的效果。
在属性对话框中,你可以设置 UILabel
的名称,并将其设置为 strong
或 weak
。有关 strong
和 weak
的更多信息,请参阅本 ,
另一种方法是以编程方式使插座如下:
迅速
@IBOutlet weak var nameLabel : UILabel!
Objective-C
@property (nonatomic, weak) IBOutlet UILabel *nameLabel;