【发布时间】:2016-05-19 08:03:45
【问题描述】:
我有一个视图,它始终具有恒定的高度。在这个视图里面有三个标签,顶部标签可以长到两行,其余的固定到一行。
所有标签的前缘和后缘都固定到超级视图,但所有标签的高度都是在本质上计算的。
对于顶部标签有一行和顶部标签有两行的两种情况,我想将所有三个标签垂直居中。
我想在 Xcode 界面生成器中使用自动布局。
【问题讨论】:
标签: ios autolayout storyboard interface-builder
我有一个视图,它始终具有恒定的高度。在这个视图里面有三个标签,顶部标签可以长到两行,其余的固定到一行。
所有标签的前缘和后缘都固定到超级视图,但所有标签的高度都是在本质上计算的。
对于顶部标签有一行和顶部标签有两行的两种情况,我想将所有三个标签垂直居中。
我想在 Xcode 界面生成器中使用自动布局。
【问题讨论】:
标签: ios autolayout storyboard interface-builder
您只能通过在视图层次结构中添加另一个 UIView 来实现这一点。所以这就像
UIView
-> SubView
-> lbl1
-> lbl2
-> lbl3
现在来约束,应用这些
SubView 到 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。如果您选择不同的值,则相应地修改约束值。
【讨论】: