viewCenteredInLeftSection

viewCenteredInLeftSection

我正在尝试找出如何使用自动版式(iOS6)和约束来执行此操作。

基本上,我的大视野在底部分为两个部分。在这些部分(当前为 subview )中,我具有 ImageView 和标签。我想用可变长的文本在两边居中。

我的头主要围绕自动布局,但是我不确定最好的方法。我倾向于认为这在IB中是不可能的,但是在代码中。

继续尝试解决这个问题,但是与此同时,这是我要创建的示例。

最佳答案

这是你所追求的吗?



我是通过在viewCenteredInLeftSection中添加一个 View (名为leftSection)来实现的,然后将时钟图像和标签添加为具有以下约束的 subview :

  • 使viewCenteredInLeftSection的CenterX和CenterY等于其 super View (leftSection)。
  • 使clockImage的顶部,底部和前缘等于其 super View (viewCenteredInLeftSection)。
  • 使label的后边缘等于其 super View (viewCenteredInLeftSection)。
  • 使clockImage的后缘与label的前缘相距标准距离。


  • 我无法在Interface Builder中调整iOS UIView的大小,因此我以OS X为例,而我完全可以在Interface Builder中做到这一点。如果您在Interface Builder中遇到上述约束时遇到麻烦,请告诉我,我将发布将创建它们的代码。

    2014-08-26编辑

    Luda,这是Xcode 5的Pin和Align菜单,也可以在Xcode的菜单栏中找到:



    以下是我的示例在Interface Builder中的外观。蓝色 View 是原始问题的“父 View ”,即图像和标签应居中的给定 View 。

    我添加了绿色 View (我将其命名为viewCenteredInLeftSection)作为“父 View ”的 subview 。然后,我突出显示了它,并使用“容器中的水平中心”和“容器中的垂直中心”的对齐菜单来创建约束以定义其位置。

    我将时钟图像添加为viewCenteredInLeftSection的 subview ,并定义了其宽度和高度。我突出显示了时钟图像和viewCenteredInLeftSection,然后使用“对齐”>“前缘”,“对齐”>“上边缘”和“对齐”>“下边缘”应用了约束。

    我将标签添加为viewCenteredInLeftSection的 subview ,将其定位为时钟图像中的standard Aqua space distance。我突出显示了标签和viewCenteredInLeftSection,然后使用“对齐”>“后沿”应用了约束。

    与Xcode 4相比,使用Xcode 5的Interface Builder创建起来要容易得多。

    10-08 15:44