UIStoryboard中同一行的多个UILabel

时间:2016-08-12 16:09:20

标签: ios autolayout storyboard

如果一个UIStoryboard中有多个UILabel,并且它们具有相同的centerY,这意味着它们位于同一行。如何使用autolayout让它们适合不同的屏幕?我希望这些UILabel具有相同的字体大小。

1 个答案:

答案 0 :(得分:0)

您需要添加约束。有几种方法可以添加约束。

如果你去故事板,你会在两条垂直线之间看到一个矩形。如果您单击要添加约束的视图(如您添加的UIView)并单击该矩形框事物它为您提供了将常量添加到视图的左侧,右侧,顶部和底部的选项。如果单击下拉菜单,它会为您提供视图周围的视图列表,您也可以添加相对于该视图的约束。

添加约束的另一种方法是单击2条垂直线之间的三角形按钮,然后选择“添加缺失约束”选项。然后,自动布局将尝试确定自动添加的最佳约束。

要删除或修改约束,可以单击“显示大小检查器”(看起来像标尺),如果添加了任何约束,则应在约束部分中看到一些约束。您可以单击并删除它们或编辑它们。

另一个选择是以编程方式添加约束(下面是在swift的堆栈视图中向图像视图添加约束的示例):

let trailingConstraint = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: self.stackView, attribute: NSLayoutAttribute.Trailing, multiplier: 1, constant: -5)
let leadingConstraint = NSLayoutConstraint(item: imageView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: self.stackView, attribute: NSLayoutAttribute.Leading, multiplier: 1, constant: 5)

self.stackView.addArrangedSubview(imageView)
self.stackView.addConstraint(trailingConstraint)
self.stackView.addConstraint(leadingConstraint)