具有两个 table 视图和标签的 Stackview 导致重叠

Stackview with two table views and labels causes overlap

我一直在尝试构建我已经在 Android 应用程序中构建的以下视图:

我使用堆栈视图垂直布局视图。有 一个标签,然后是第一个 table 视图,然后是另一个标签,然后是另一个 table 视图(Android 配置相同):

我期望的是让第一个 table 视图拉伸以容纳里面的 3 个项目,后面跟着标签,等等而不限制高度。

这是自动布局的样子:

这些是我设置的约束:

如何获得与 Android 相同的视图?

问题是基于 UIScrollView 的视图(所有 table 视图和集合视图都是)没有 return 堆栈视图的固有大小;它们理论上可以无限大。解决这个问题的正确方法不是将它们放在堆栈视图中,而是将它们添加为具有以下约束的约束子视图:

  • 顶部 table 视图被约束等于其父视图的顶部、前导和尾部边缘。
  • 底部 table 视图被约束为与其父视图的底部、前导和尾部边缘相等。
  • 顶部 table 视图的底部锚点等于底部 table 视图的顶部锚点。
  • 顶部和底部 table 视图被限制为具有相同的高度。

这将强制 table 个视图分别使用可用屏幕的一半 space,同时保持对不同屏幕尺寸的灵活性。