在 IOS 6 iPad 应用程序中,我有一个带有多个容器视图的容器视图控制器。目前我已将我的应用程序锁定为横向并且工作正常,但我也想支持纵向。一切都是通过界面生成器使用自动布局和约束设置的。如果可能的话,我想保留一个故事板以保持一致性、可维护性等。
布局是这样的:标题,左侧菜单,两个内容窗格(横向并排)和一个脚窗格,除了内容之外,我调整了所有窗格的大小。当从横向旋转到纵向时,我希望一个内容窗格滑到另一个窗格下方(目前它从屏幕上吹走),并且两者都粘在容器视图的边缘。
在 HTML5/CSS3 中,这很容易做到,但我被困在 IB 中,任何帮助/想法都会很棒!
谢谢!
编辑:
解决方案 -
按照@Charles A. 的建议,我将 NSLayoutConstraints 链接到 IBOutlets 并在代码中操纵间距/优先级。我真正挣扎的地方是使用高度和宽度约束。如果您移动了任何内容,Interface Builder 将使用前导/尾随和顶部/底部约束删除或覆盖这些内容。我终于屈服了,摆脱了所有的高度和宽度限制,只使用了前导/尾随/顶部/底部。
我发现了 2 件事:约束具有里程碑(例如,一个优先级为 #750),因此如果您务实地将优先级从 749 更改为 750,您将获得:
Mutating a priority from required to not on an installed constraint (or vice-versa) is not supported.
但是,如果您从 750 更改为 800 就可以了。
此外,在操纵约束之后,我需要调用:
[self updateViewConstraints]
我发现了一篇建议 [parent updateViewConstraints] 的帖子,它不起作用,上面的那个!
无论如何,我希望这可以帮助这个地方的其他人,因为那里没有太多东西。