我有一个 UIView
我想在 Interface Builder 中使用自动布局进行定位,并且该 View 由多个标签组成。这是一个尝试的文本表示:
|
-- First label with some text -------------------
|
-- Second label that may not have text in it ----
|
-- Third label with some text -------------------
|
它基本上具有三个标签,它们之间的距离约为 20pt,距边缘的距离约为 20pt。
然而,更糟糕的是,第二个标签中通常根本没有文本。这是 View 可能具有的可选额外描述。
是否可以说“像上面那样定位,但如果第二个标签不存在,则在第一个和第三个标签之间放置 20pt 间距。”。我想确保当第二个标签为空时不会出现奇怪的间隙。
最佳答案
您需要从父 View 中删除第二个标签,以使其约束消失。如果没有第二个标签,您可以在第三个和第一个标签之间添加一个较低优先级的约束,为它们提供您想要的间距。在代码中,您将需要检查第二个 able 是否没有文本,如果是,则将其从其父 View 中删除。这将导致优先级较低的约束条件得到满足,并将第三个标签向上移动。
编辑后:
另一种不删除任何内容的方法是首先在第三个和第一个标签之间设置垂直间距约束,而不是在第三个和第二个标签之间设置垂直间距约束。为该约束创建一个 IBOutlet,如果第二个标签没有文本,则在代码中更改其常量值。第二个标签仍然存在,但第三个标签将在其上面。
关于ios - 是否可以在 Interface Builder 中使用自动布局定位 View ,以便如果标签为空,其他 View 将不会保留空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27927157/