iOS – 将两个标签放在超级视图的中心
我有两个标签,L1和L2的变量和非同一长度。 我想在Xcode中使用约束放置这两个标签。 如果可能的话,我不想以编程方式操纵约束。 指导将不胜感激。
正确的图像应该是预期的输出
要求,
- 两个标签的宽度不相同
- 当运行L1的前导空间和L2的尾随空间时将是相等的
- L1和L2之间的距离,水平空间是固定的,10 px
- UIStackView无法使用
我怎么能从Xcode做到这一点?
您可以做的是将UILabel
放在UIView
,然后:
- 将superView的前导,顶部和底部添加到HEL
UILabel
。 - 将superView的顶部,顶部和底部添加到HEAVENLY
UILabel
。 - 在两个
UILabel
之间添加10个点的水平间距
现在将UIView
水平和垂直居中放置在屏幕中间。 将水平居中约束优先级设置为250.使用>=
5约束将UIView
的前导和尾随空格添加到其superView
编辑:此外,如果文本太大,那么上述约束不足以完美地工作(您必须将numberOfLines设置为0并将模式换行到wordWrap以显示完整文本并转到下一行,当然)! 由于UILabel
的推断高度和推断宽度优先级为750,并且每个UILabel
的内容压缩阻抗优先级也默认为750,因此Xcode将会混淆该做什么,这是正确的! 您可以做的是将属性检查 器中的内容压缩属性设置为1000
要么
如果你不想修改抗压性 (我曾经发现它们很可怕),你还可以做的是在每个UILabel
的宽度和高度上添加一个>=
约束。 给出这个约束也可以显示完整的文本,无论它有多大,因为明确定义高度和宽度给它们优先级为1000!
你的L1和L2的宽度是固定值还是不确定值?
如果宽度是固定的,你可以使用砌体来实现效果。