Ios 隐藏所有排列的子视图时,视图布局不明确

Ios 隐藏所有排列的子视图时,视图布局不明确,ios,autolayout,uistackview,Ios,Autolayout,Uistackview,我有一个非常简单的stackView: stackView.spacing = 10 stackView.axis = .horizontal stackView.alignment = .center stackView.distribution = .fill view.addSubview(stackView) stackView.snp.makeConstraints { (make) in make.center.equalToSuperview() } 然后我添加了三个按钮

我有一个非常简单的stackView:

stackView.spacing = 10
stackView.axis = .horizontal
stackView.alignment = .center
stackView.distribution = .fill
view.addSubview(stackView)
stackView.snp.makeConstraints { (make) in
    make.center.equalToSuperview()
}
然后我添加了三个按钮:

stackView.addArrangedSubview(button1)
stackView.addArrangedSubview(button2)
stackView.addArrangedSubview(button3)
这里的情况很好

然后我隐藏按钮1和按钮3,stackView也按预期布局

但是当我隐藏所有子视图,然后单击Xcode中的调试视图层次结构时,控制台开始发出抱怨

我没有添加任何明确的约束。 UIStackView隐式生成了一些约束


那么,有人知道如何消除这些自动布局警告吗?

拥有零子视图的UIStackView有什么意义?如果要隐藏所有子视图,最好隐藏StackView本身?无论如何,防止空StackView出现这些错误消息的唯一方法是为StackView设置宽度和高度限制。

将UIStackView设置为零子视图有什么意义?如果要隐藏所有子视图,最好隐藏StackView本身?无论如何,防止空StackView出现这些错误消息的唯一方法是为StackView设置宽度和高度限制。

这是有意义的,因为按钮1、2和3都可以设置为隐藏或不隐藏。(这就是为什么我一开始使用堆栈视图)所以在某一时刻,有可能所有三个按钮都被设置为隐藏。我试图设置最小宽度和高度限制,但它不起作用,因为按钮1、2和3都可以设置为隐藏或不隐藏。(这就是为什么我一开始使用堆栈视图)所以在某一时刻,有可能所有三个按钮都被设置为隐藏。我试图设置最小宽度和高度约束,但当stackview没有任何子视图时,它不起作用,这意味着stackview没有任何宽度/高度约束。当stackview没有任何子视图时,它只会将其默认为
0
宽度和
0
高度的帧,这意味着stackview没有任何宽度/高度约束。它只是将其默认为
0
宽度和
0
高度的帧