父视图内的容器视图的AutoLayout未与布局指南对齐

时间:2016-04-13 15:59:20

标签: ios xcode swift autolayout

我真的不确定如何将这个问题写成文字,因此我将提供一些令人难以置信的部分屏幕截图,说明相关视图的外观。我会提供更多信息,但我不确定这是否违反了合同。遗憾!

我有一个容器视图的设置(本身在导航控制器内,在选项卡视图中),有两个视图,一个是Map View和一个Table View。表格视图似乎被分流到左边。

最奇怪的是,如果我将手机倾斜到风景并回到肖像,我会得到我想要的行为。

为什么这不适用于初始视图?没有设置代码来处理应用程序中任何位置的方向更改。如果我遗漏了一些可以解释这种行为的重要信息,请告诉我,我会尽快将其编辑到我的问题中,我完全感到困惑,甚至不知道从哪里开始。

编辑:我一直在寻找类似的问题,并找到了几个似乎不再适用的答案,因为它们指的是旧版本的Xcode和iOS,以及像我之前没有遇到故事板的概念。

编辑2:自动布局约束:地图视图将中心X与超级视图对齐,前景空间到超级视图等于-20,底部空间到容器视图等于0,顶部空间到顶部布局指南等于0,等高到容器视图。

容器视图将中心X与Superview对齐,前导空间到Superview等于-20底部空间到底部布局指南等于0,顶部空间到地图视图,等高到地图视图。

容器视图中包含的视图没有与父视图相关的直接约束,我不完全确定它在Storyboard编辑器中的工作方式。

编辑3:我把一个精简的演示项目放在一起,显示了这个问题。

重新创建问题的说明:

  • 在标签栏中选择项目
  • 在下一个表格视图中选择一个选项
  • 您应该看到下一个视图中表视图中的项目未正确显示。
  • 倾斜手机横向然后回到纵向可以解决问题。

https://www.dropbox.com/s/y1y48pggs04cz19/ContainerTest.zip?dl=0

1 个答案:

答案 0 :(得分:2)

据我说,

来自您的编辑2:

Superview的领先空间等于-20 我认为这是错误

领先空间)应该 +20 代替 -20 。尝试更改它,然后检查。

您可以在下面的示例中查看带有+20和-20的前导空格示例。

示例: -

enter image description here

编辑1: -

Link for demo with correction