在屏幕上显示之前确定 UIStackView 的固有大小

determining the intrinsic size of a UIStackView before display on the screen

我想在屏幕上显示之前确定堆栈视图的固有大小。我的想法是将它用作屏幕底部上拉菜单的一部分,但是当我在对象出现之前查询它时,它的大小为(-1,-1)。在调用内部内容大小之前,我应该先做些什么吗?

UIStackView 没有固有的内容大小。你得到 -1 因为那是 UIView.noIntrinsicMetric.

的值

相反,询问其合身尺寸:

let size = stackView.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)