使用自动布局的一组标签的宽度相同

时间:2014-10-27 17:45:35

标签: ios width uilabel autolayout nslayoutconstraint

我需要创建一个带有几个标签和按钮的简单布局。以下是我如何在IB中定位UI元素。

enter image description here

这也是我希望它们在应用程序中的样子。标签设置在左侧,宽度相同,因此右侧的元素将相应调整其宽度。

我已将前导空间设置为左侧标签上的超视图约束,并在每个标签之间设置垂直间距。同样地,我将超视图约束的尾随空间添加到右侧的标签和按钮,彼此之间具有垂直间距。我还在每对元素之间添加了水平间距(例如:名称< - > John Doe,电话< - >按钮)。

当我运行它时,它看起来像这样。

enter image description here

元素只占用内容需要的宽度。我认为发生此问题是因为没有办法自动布局来决定宽度。如果我将左侧的标签设置为相同的宽度约束,它在运行时不起作用,因为它们的常量是固定的,所以它们看起来像这样。

enter image description here

如何让它们像我在界面构建器中那样正确显示?

谢谢。

我使用此问题上传了一个测试Xcode项目here

1 个答案:

答案 0 :(得分:0)

在你的最后一个例子中,看起来你几乎达到了你想要的效果。您使左侧的所有标签具有相同的宽度。您现在可以将第一个标签上的宽度约束设置为适合您的宽度,其他标签应自动匹配。您可能仍然唯一的问题是让它在更宽的屏幕上看起来很好。