【发布时间】:2013-08-27 15:22:19
【问题描述】:
在 IOS 6 iPad 应用程序中,我有一个包含多个容器视图的容器视图控制器。目前我已将我的应用程序锁定为横向并且工作正常,但我也想支持纵向。一切都是通过 Interface builder 使用自动布局和约束设置的。如果可能的话,我想保留一个故事板以保持一致性、可维护性等。
布局是这样的:标题、左侧菜单、两个内容窗格(横向并排)和一个脚窗格,除了内容之外,我调整了所有窗格的大小。当从横向旋转到纵向时,我希望一个内容窗格滑到另一个窗格下方(目前它从屏幕上吹走),并且两者都粘在容器视图的边缘。
在 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] 的帖子,它不起作用,上面的那个起作用了!
无论如何,我希望这可以帮助这个地方的其他人,因为那里没有太多东西。
【问题讨论】:
标签: ios xcode ipad ios6 interface-builder