2016-12-28 71 views
0

我有两个标签,L1和L2的变量和不相同的长度。我想在Xcode中使用约束来放置这两个标签。如果可能的话,我不想以编程方式操纵约束。将不胜感激。iOS - 将两个标签放在其超级视图的中心

Right image should be the expected output

右图像应是预期的输出

要求,

  1. 两个标签是在非相同宽度
  2. 当运行导致L1的空间和尾随L2的空间将等于
  3. L1之间的距离& L2,水平空间是固定的, 10 PX
  4. UIStackView不能使用

我怎么能做到这一点从Xcode的?

回答

5

你可以做的是把两个UILabel一个UIView,然后里面:

  • 添加的领先,顶部和底部的上海华HELUILabel
  • 添加尾随,顶部和底部到superView到您的HEAVENLYUILabel
  • 加入的10点水平间距之间你的两个UILabel

现在的水平和垂直居中的UIView在屏幕的中间。设置在水平中心约束优先250添加的领先和你UIView的尾部空间,其上海华>= 5约束

编辑:此外,如果文本太大,则上述限制AREN” t只需完全工作(您将必须将numberOfLines设置为0和换行模式wordWrap显示完整的文本,当然转到下一行)!由于UILabel推测高度推断宽度优先级为750,并且默认情况下每个UILabel的内容压缩阻力优先级也是750,所以Xcode会困惑该怎么做,并且正确如此!你可以做的是设置在属性检查器中内容压缩财产1000

enter image description here

OR

如果你不希望与压缩性鼓捣(我用于发现它们可怕),你还可以做的是在每个UILabel的宽度和高度上添加一个>=约束。如果明确定义高度和宽度使它们的优先级为1000,那么给出这个约束也将显示完整的文本,无论它有多大。

+1

给出相同的基线,以便它们可以保持其水平对齐相同。 – Ballu

+0

'UIView的高度将是未知的权利? Xcode如何处理它? –

+1

'UIView'的高度和宽度将从其内容推断出来。在这种情况下,两个'UILabel' – Rikh

-1

是你的L1和L2的宽度是固定值还是不确定值?

如果宽度固定,您可以使用砌体来实现效果。

+0

那些是不确定的。这就是问题出现的原因。 –

相关问题