一个子视图的固有内容大小优先的 UIStackView 分布

UIStackView distribution with intrinsic content size of one subview prioritised

  stackView
+------------+                +
|  topView   | height: 50     |
+------------+                |
|            |                |
|            |                | total height: 300
| bottomView | height: 250    |
|            |                |
|            |                |
+------------+                +

我想在 UIStackView (stackView) 中布局两个视图 (topViewbottomView),条件如下:

None UIStackView 的分布方式可以覆盖这个

设置一个常量约束在这里没有帮助,因为 topView 的固有内容高度可能会改变。

所以我需要一些自动布局功能。我尝试设置不同的内容压缩阻力优先级和内容拥抱优先级。没有成功,我仍然觉得它们可能是一个解决方案(如果我知道如何正确使用它们的话)。

这似乎不是一个复杂的问题,我找不到合适的自动布局API。有什么提示吗?

你应该设置:

  • 顶部视图的垂直内容拥抱优先级高于底部视图
  • 要填充的堆栈视图对齐方式
  • 要填充的堆栈视图分布

如果顶视图和底视图没有固有宽度,您还应该添加宽度约束。

演示: