我正在尝试找出如何使用自动版式(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创建起来要容易得多。