iOS - 将两个标签放在其超级视图的中心
我有两个标签,L1和L2的变量和不相同的长度。我想在Xcode中使用约束来放置这两个标签。如果可能的话,我不想以编程方式操纵约束。将不胜感激。iOS - 将两个标签放在其超级视图的中心
右图像应是预期的输出
要求,
- 两个标签是在非相同宽度
- 当运行导致L1的空间和尾随L2的空间将等于
- L1之间的距离& L2,水平空间是固定的, 10 PX
- UIStackView不能使用
我怎么能做到这一点从Xcode的?
你可以做的是把两个UILabel
一个UIView
,然后里面:
- 添加的领先,顶部和底部的上海华您HEL
UILabel
。 - 添加尾随,顶部和底部到superView到您的HEAVENLY
UILabel
。 - 加入的10点水平间距之间你的两个
UILabel
现在的水平和垂直居中的UIView
在屏幕的中间。设置在水平中心约束优先250添加的领先和你UIView
的尾部空间,其上海华有>=
5约束
编辑:此外,如果文本太大,则上述限制AREN” t只需完全工作(您将必须将numberOfLines设置为0和换行模式到wordWrap显示完整的文本,当然转到下一行)!由于UILabel
的推测高度和推断宽度优先级为750,并且默认情况下每个UILabel
的内容压缩阻力优先级也是750,所以Xcode会困惑该怎么做,并且正确如此!你可以做的是设置在属性检查器中的内容压缩财产1000
OR
如果你不希望与压缩性鼓捣(我用于发现它们可怕),你还可以做的是在每个UILabel
的宽度和高度上添加一个>=
约束。如果明确定义高度和宽度使它们的优先级为1000,那么给出这个约束也将显示完整的文本,无论它有多大。
是你的L1和L2的宽度是固定值还是不确定值?
如果宽度固定,您可以使用砌体来实现效果。
那些是不确定的。这就是问题出现的原因。 –
给出相同的基线,以便它们可以保持其水平对齐相同。 – Ballu
'UIView的高度将是未知的权利? Xcode如何处理它? –
'UIView'的高度和宽度将从其内容推断出来。在这种情况下,两个'UILabel' – Rikh