UIStackView 在 Storyboard 中添加重叠视图

UIStackView add overlapping views in Storyboard

我在情节提要中向 UIStackView 添加了 3 个子视图。问题是我需要添加与第二个子视图重叠的第四个子视图。一次只能看到两个重叠子视图中的一个。在Storyboard中指定方便吗,还是需要在代码中增删子视图?

要在 UIStackView 的第二个或第四个子视图之间切换,您不需要添加或删除子视图,只需在它们上设置 isHidden 属性。

堆栈视图有一个额外的 属性 arrangedSubviews,这些是堆栈视图将管理其布局的子视图。如果将 isHidden 设置为 true 并检查 arrangedSubviews 属性,您将看到隐藏视图的 height0。如果您检查视图调试器,隐藏的视图在视图层次结构中根本不可见。 stack view会根据stack view的属性对剩余view进行布局。

这与普通视图略有不同,如果子视图的 isHidden 属性 变为真,子视图仍然参与视图的布局,只是不绘制内容并且不接收输入事件。