在界面构建器

时间:2016-02-09 11:01:08

标签: ios autolayout storyboard interface-builder

我有一个视图,它始终具有恒定的高度。在这个视图中有三个标签,顶部标签可以长到两条线,其余的固定在一条线上。

所有标签的前缘和后缘都固定在superview上,但所有标签的高度都是内在计算的。

enter image description here

对于顶部标签有一条线且顶部标签有两条线的情况,我想垂直居中所有三个标签。

我想在Xcode界面构建器中使用自动布局来完成它。

1 个答案:

答案 0 :(得分:0)

您只能通过在视图层次结构中添加另一个UIView来实现此目的。所以这就像

UIView
  -> SubView
      -> lbl1
      -> lbl2
      -> lbl3

现在要约束,应用这些

SubView to UIView: - CenterX,CenterY,Leading = 0,Trailing = 0,Height> = 67;垂直抗压力= 751;
lbl1到子视图: - 前导= 0,尾随= 0,顶部= 0,底部到Lbl2 = 2,高度> = 21;垂直抗压力= 751;
lbl2到子视图: - 前导= 0,尾随= 0,顶部到lbl1 = 2,底部到lbl3 = 2,高度= 21;
lbl3到子视图: - 前导= 0,尾随= 0,顶部到lbl2 = 2,底部= 0,高度= 21;

对于Subview,我根据每个标签高度计算高度为21,每个标签之间的间距为2. So SubView.Height = 21*3+2+2 = 67。如果选择其他值,则相应地修改约束值。