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

Pie*_*ter 5 xcode ios autolayout swift uistackview

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

只是发现UIStackView中的隐藏视图不再"自动布局"时"参与".

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

Cod*_*odo 10

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

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


小智 6

您可以将其 alpha 设为 0,而不是隐藏子视图。这样子视图将不可见,但会参与布局。