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

时间:2019-08-01 11:22:38

标签: ios swift autolayout

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

Android layout

我使用了堆栈视图来垂直排列视图。有 标签,然后是第一个表格视图,然后是另一个标签,再是另一个表格视图(Android配置相同):

IOS Layout

我希望在不限制高度的情况下,使第一个表格视图能够容纳其中的3个项目,后面的标签,依此类推。

这是自动布局的样子:

Autolayout

这些是我设置的约束:

Constraints

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

1 个答案:

答案 0 :(得分:1)

问题是基于UIScrollView的视图(所有表视图和集合视图都是)没有返回到堆栈视图的固有大小;从理论上讲,它们可以是无穷大的。解决此问题的正确方法不是将它们放在堆栈视图中,而是将它们添加为受以下约束的约束子视图:

  • 顶级表视图的约束等于其超级视图的顶部,顶部和底部。
  • 底表视图的约束等于其父视图的底部,前边缘和后边缘。
  • 顶视图的底部锚点等于底视图的顶部锚点。
  • 顶视图和底视图的高度必须相同。

这将强制表视图使用每个可用屏幕空间的一半,同时保持灵活以适应不同的屏幕尺寸。