1

我有一个联系人的视图。根据用户提供的联系信息,如果信息可用,我想包括标签,或者如果信息不可用,则不占用空间以避免一堆空白的字段,如电话:电子邮件:等,

页面布局在故事板中。如果为空或以其他方式动态构建页面,有没有办法让标签不占用空间?

我在想,[label sizeToFit];但这似乎仍然为标签留下至少一行空白。

编辑:显示垂直约束设置为 10.f 和 0.f。图像正在缩小,但它占用的空间没有缩小。

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

1

您可以为此使用约束。

以编程方式构建高级布局非常复杂且容易出错,但使用自动布局选项可以做到这一点。

例如,您有一个 UILabel,有时您想将其从布局中删除。因此,您可以参考该 UILabel 的高度和宽度约束,然后进行如下更改:

widthConstraint.constant  = 0.0f;
heightConstraint.constant = 0.0f;

您还可以将初始值保留在属性中,并在要添加到布局时使用它们。

---已编辑---

为了生效,您应该[self needsUpdateConstraints];在更改约束后调用。

于 2015-10-04T12:03:06.850 回答
0

如果您的目标是 iOS9+,那么您的问题的解决方案就是 Stack View。https://developer.apple.com/library/prerelease/ios/documentation/UIKit/Reference/UIStackView_Class_Reference/

在这里你会找到一个快速的介绍:https ://developer.apple.com/videos/play/wwdc2015-218/

它将根据您提供或采取的视图为您处理所有布局。

Z。

于 2015-10-04T12:02:48.470 回答