如何在 UIStackView 中保留隐藏视图的约束

Posted

技术标签:

【中文标题】如何在 UIStackView 中保留隐藏视图的约束【英文标题】:How to preserve constraints for hidden views within UIStackView 【发布时间】:2015-12-28 13:03:57 【问题描述】:

我在水平堆栈视图中有三个按钮,并且我已经设置了自动布局,以便它们根据特定标准显示。

例如,第一个按钮将是堆栈视图宽度的 40%,第二个按钮与第一个按钮具有相同的宽度,第三个按钮占用剩余的宽度。按钮的高度与堆栈视图相同。它们都等距,相隔 8 点。堆栈视图的分布设置为“等间距”,对齐设置为“居中”。

当我决定隐藏前两个按钮时出现问题,但仍希望第三个按钮以相同的宽度出现在同一位置。自动布局会调整第三个按钮的大小,就好像第一个按钮和第二个按钮不存在一样。

如何使创建的自动布局继续保留,就好像隐藏的按钮仍然存在一样?

【问题讨论】:

【参考方案1】:

您不能将要“隐藏”的按钮的alpha 设置为0 并将userInteractionEnabled 设置为NO 吗?这会导致它们消失,我认为不会导致第三个按钮展开。

【讨论】:

是的,这就是我最终所做的。设置隐藏似乎不那么老套了。 感谢伟大的黑客!【参考方案2】:

对可以充当备份约束的容器使用第二个约束。或者只是通过代码重新创建所需的约束。

【讨论】:

以上是关于如何在 UIStackView 中保留隐藏视图的约束的主要内容,如果未能解决你的问题,请参考以下文章

隐藏内部视图时,UIStackView 将内容向左移动

UIStackView,通过调整动画大小隐藏子视图

UIStackView 隐藏视图动画

UIStackView 隐藏/取消隐藏排列的子视图问题

将子视图保留为 UIStackView 中的原始尺寸

UIStackView 图层属性