有没有办法让UIStackView的子视图在隐藏时参与自动布局?

时间:2016-08-23 08:51:22

标签: ios swift xcode autolayout uistackview

我在我的最新项目中介绍了一些UIStackView,因为它使视图的间距和添加其他自动布局约束变得更加容易。

只是发现UIStackView中隐藏的视图不再参与'当autolayout做它的事情。

我认为这通常是一个很棒的功能,但是对于这个特殊的视图我不想要,有没有办法让UIStackView的子视图表现得好像它们嵌入在普通的UIView中? /> 或者我别无选择,只能去除UIStackViews? (并添加了许多恼人的' spacer'观点和约束)

2 个答案:

答案 0 :(得分:8)

按照设计,隐藏排列的子视图不仅隐藏,而且不再对布局做出贡献。这是使用自动布局无法轻松实现的主要功能。

如果要阻止此操作,则可以将视图包装在另一个视图中。而不是隐藏 UIStackView 的直接子视图(新设置中的包装器视图),隐藏内部视图(与旧设置中的相同,除了它现在已嵌套)。由于直接子视图可见, UIStackView 不会回收空间。但是,当视图内容被隐藏时,用户无法看到任何内容。

答案 1 :(得分:1)

不是隐藏子视图,而是可以将其alpha变为0.这样子视图就不会被显示但它将参与布局。