添加约束后,模糊的可滚动内容高度错误仍然存​​在

时间:2015-08-07 10:28:28

标签: ios swift uitableview uiscrollview autolayout

之前已经问过这种类型的question但是我出去了。

我有一个带有两个容器视图的UIViewController,它们都嵌入了一个表视图。

enter image description here

顶级tableview是动态的,而底部的是静态的。底部tableview中的单元格内有一个文本字段。因此,当您点击文本字段并出现键盘时,我想滚动所有内容。为此,我将两个容器视图放在一个滚动视图中。

我将滚动视图固定到四个方面。我已经添加了前导,顶部,尾部约束以及水平中心约束(如果没有,我会得到一个模糊的可滚动内容 width 错误)到顶部容器视图。对于底部容器视图,我添加了前导,底部,尾随约束。还有两个容器视图之间的垂直空间约束。

enter image description here

但我仍然得到模棱两可的可滚动内容高度错误。我发现此问题的answer是为了确保您从上到下有足够的约束,而我似乎拥有所有这些约束。我无法弄清楚为什么我还有这个问题。这就是我运行应用程序时的样子。

enter image description here

我错过了其他什么吗?

Dropbox链接到演示Xcode项目。

3 个答案:

答案 0 :(得分:1)

解决方案是在视图中嵌入两个容器:

views tree

然后将此视图的约束设置为:

embedded view constraints

然后是上层容器的约束:

upper container constraints

然后降低容器:

lower

比例高度约束应如下所示:

proportional constraint

上部为乘数0.6,下部容器为0.4。

您的项目已修改:https://github.com/rshev/Example_EmbeddedTableViews

答案 1 :(得分:0)

你有一个滚动视图,你必须提供高度约束。 将高度约束添加到普通表格视图容器,并将高度约束添加到分组视图容器

答案 2 :(得分:0)

我在这里看到的第一个问题是将多个视图直接放入滚动视图中。不要这样做,而是在其上放置一个视图(并将其命名为containerView),并在其上定义多个视图,并以这种方式定义containerView子视图的约束,以便它们确定containerView的内容大小。这样,如果您希望scrollView仅垂直滚动,则所有containerView子视图的宽度必须等于scrollview宽度,并且它们应该从上到下放置以使scrollView垂直滚动