在一条线上居中多个UILabel

时间:2015-05-11 01:30:38

标签: ios swift view uilabel center

我想在Interface Builder中将多个UILabel(作为一个组)水平居中。一个直视控制器我无法弄清楚如何做到这一点。我阅读了关于将UILabel置于视图中然后将视图置于视图控制器中心的注释。当我尝试这个,加班时我说要更新界面构建器中的帧,View会被调整为一无所有。 (即,其高度和宽度将由IB设定为0)。我需要知道如何在界面构建器中使用它。

包含我想要水平居中的多个标签的行的示例如下。大括号只是表明每个标签的开头和结尾,而不是文本的艺术。 < -6->用于表示从标签1到标签2的尾随空间是6

标签1标签2 [等级:0.0]< - 6 - > [距离:125.34公里]

任何建议都将不胜感激。

以下是我所做的事情的一个确切示例,它不起作用:

  1. 在IB中创建新的视图控制器
  2. 将页面标签放置在水平居中的页面顶部,并与布局指南的顶部对齐。
  3. 在页面上添加具有以下约束的视图:
  4. View Constraints

    1. 现在使用以下约束向视图添加两个标签: Label Constraints

    2. 一旦完成,我得到以下错误并更新帧将导致它的高度和宽度为0 Error Message

    3. 以下是IB中的页面: enter image description here

      我需要自动调整视图的高度和宽度,以便在视图中放置多行标签,并将视图的所有内容视为一组并以页面为中心。

      任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:3)

以下是缩写布局上所有约束的工作集的快照,它生成一个始终居中的视图,该视图会随着子视图自动调整大小(即,随着任何标签的内容发生变化,视图会增大或缩小)它)。

对于您的解决方案而言,视图既没有高度也没有宽度约束;它的大小完全受其后代约束的限制。

enter image description here

关键是每个组件都有直接或间接约束,从中可以指定或推断其大小和位置。例如,为了使视图推断其宽度,子标签必须在第一个标签上具有前导空格约束,在最后一个标签上具有尾随空间约束,并且在内部标签之间具有水平空间约束。这些约束加上标签的内容允许推断视图的宽度...并强制视图动态地符合该宽度。

同样适用于视图的高度。例如,您可以指定一个标签的顶部和底部空间,或全部。如果只有一个,则剩余的标签可以与其垂直对齐(请参阅"将中心Y对齐:Label1"在屏幕截图中)。