embedded在其他视图中的UITableView的段标题位置不正确

我有一个UITableViewembedded在另一个视图,如下所示:

显示父级和嵌入式视图控制器的storbyboard

导航控制器以模态方式显示,所以它的布局应该是全屏幕,而不依赖于故事板的任何其他部分。 如果使用固定的自动布局约束来设置configuration文件视图的上半部分,如下所示:

  • 图像视图顶部布局指南(灰色):20pt
  • 图像视图为“交易”标签:20pt
  • “交易”标签到容器视图:20pt
  • 容器视图距离底部布局指南,前后空格:全0pt。

所以基本上,当屏幕较大时,容器视图应该填充剩余的空间。

在容器视图中,我embedded了一个表视图(包括适当的控制器)。 为了使问题更加明显,我给容器视图一个绿色的背景和表格视图一个蓝色的(这就是为什么部分标题略微蓝色)。 当然,我希望表视图填充整个容器视图。 但这只是部分发生:

显示该表视图的应用程序屏幕快照确实填充了完整的容器视图,但节标题的位置太低

所以表视图确实填充完整的容器视图(表视图的背景颜色是蓝色),但是节标题被定位为低。 如果向下滚动,部分标题保持在相同的位置,但单元向上移动并显示在其上方:

在表格视图中滚动后的应用程序屏幕截图

我已经尝试检查并取消选中表视图控制器的“扩展边”checkbox,控制它是否扩展了“顶部酒吧”,“底部酒吧”和“不透明酒吧”,但没有帮助。 它看起来好像表视图为导航栏和状态栏留下空间,但它不应该和我不明白如何使它正确地布置节标头和单元格。

任何想法,为什么这是我怎样才能解决它?

这可以通过取消选中IB中的“Under Top Bars”框来修复其中包含容器视图的控制器,而不是表视图控制器。 你不应该这样做,因为你会认为在导航栏下放置主视图(在容器控制器中)不会使embedded式表视图的行为与其行为一样。

禁用包含视图的“调整滚动视图插图”也有帮助。