如何水平居中两个标签?

Cen*_*ion 12 objective-c interface-builder uilabel ios autolayout

我有非常简单的要求,其中两个标签必须水平居中.所以,我选择了它们并水平选择了Editor-> align-> center.然后将容器约束的顶部空间添加到它们.我还需要标签来缩小/增加内容大小.但是,IB显示错误和几个警告.我可以通过在它们之间添加引脚(水平空间)来使标签缩小/增长,但在这种情况下它们不会居中.以下是截图:

在此输入图像描述

这是错误和警告:

在此输入图像描述

UPDATE theraven提出了一个有趣的建议,即使用虚拟视图将其水平居中并将两个标签固定到它上面.我删除了所有现有的约束,添加了这个虚拟视图和中心X +中心Y约束.然后为它添加了两个标签(添加了水平空间约束).但是,我仍然收到一堆错误和警告:

在此输入图像描述 在此输入图像描述

UPDATE2只是更新问题,但仍未找到有效答案.@Theraven解决方案适用于iPhone4,iPhone4S,iPhone5和iPhone5S,但它不是真正的中心,而是一种解决方法.因此,对于iPhone6和iPhone6 Plus,它不起作用,因为前导和尾随空格将被修复,并且不会自动调整大小的宽度.

Cat*_* T. 12

您可以做的是将两个标签添加到另一个视图,如容器视图.然后,您需要水平居中这个并添加必要的约束.要添加包含UIView,您可以选择两个标签,转到Editor -> Embed In -> View.

然后,您需要添加约束以使包含视图适合两个标签.所以像这样:

第一个标签(左一个):

  • 超级视野的领先空间
  • Superview的顶部和底部空间
  • 水平间距到下一个标签

第二个标签:

  • 尾随空间到superview
  • 顶视图和底视图(或与第一个顶部对齐)

然后,包含视图应调整大小以适合两个标签.然后,您需要做的就是为此容器视图添加顶部偏移约束,并在父视图中对其进行水平对齐.

这样,包含视图将增加所需的数量以适应两个标签及它们之间的空间,并始终在父视图中居中.

我对我的测试约束进行了截图,以防它对您有所帮助.

左侧标签的约束

右侧标签

希望这是你想要的.


the*_*ven 5

要解决此问题,请在两个标签之间使用空白UIView并将其水平居中.然后将两个标签固定在居中的空白视图的两侧.在自动布局中使用这样的间隔视图是常见的惯例.