使用自动布局删除视图并重新排列其余部分

Posted

技术标签:

【中文标题】使用自动布局删除视图并重新排列其余部分【英文标题】:Removing a view with autolayout and rearranging the rest 【发布时间】:2014-11-17 09:21:09 【问题描述】:

我有一个关于使用自动布局来安排未知数量的视图的问题。 假设我有 4 个标签 label1...label4,它们都具有相同的高度/宽度,并且一个在另一个之下,它们之间有 10pt 的垂直空间。这些标签显示了我从服务器获取的一些信息(其中一些可能不存在)

问题是:如果我有关于 label1、label3 和 4(或其他组合)的信息,我如何才能让标签重新排列以始终位于需要它们的位置(一个在另一个下方,垂直空间为 10pt)。所以在这种情况下 label3 将是 label2 如果它有数据的地方......

【问题讨论】:

【参考方案1】:

你没有采取最简单的方法。

您应该“按顺序”填写标签,例如。如果收到两行数据,不要填写标签1和标签4,并尝试隐藏标签2和3。只需填写标签1和2,并隐藏其余标签。

另一个合理的解决方案是在UITableView 中显示您的数据。这样,您就可以显示任意数量的行,而无需处理这些微妙的情况。

【讨论】:

我明白你的回答,但我也有这个问题:在两个标签之间可能有一个图像会将其下的标签向下推。如果图像丢失,我需要标签在其他... 然后使用表格视图。这是迄今为止实现所有可能组合的最简单方法。【参考方案2】:

由于您已经安排了 10 点距离的标签,请不要干扰标签排列。如果您正在获取第 3 和第 4 个标签的数据,请将其填充到第 1、第 2 和第 3 个标签中,并将第 4 个标签的颜色更改为清除颜色。最终用户可能不知道它下面还有另一个标签。由于我看不到代码,如果您发送示例代码,我会说明此调整,我会给您一个更好的答案

【讨论】:

以上是关于使用自动布局删除视图并重新排列其余部分的主要内容,如果未能解决你的问题,请参考以下文章

在视图期间更改后重新排列自动布局

故事板中的自动布局是全部还是全部?

使用自动布局删除和重新添加子视图

自动布局混合代码和界面生成器

Xcode 自动布局和屏幕方向

使用自动布局隐藏视图并重新定位其他视图