我有一个非常简单的应用程序......我正在学习自动布局,所以我创建了一个具有白色背景、一个按钮和一个文本字段的 viewController。我为按钮和文本字段添加了约束,以将它们放在父视图(viewcontrollers 视图)的顶部并彼此相邻。完美地工作...
然后我试图把这个 viewController 推到一个 navigationController 中,一切都变成了废话。背景颜色现在是黑色(而不是白色),并且按钮和文本字段不再承认它们对父视图顶部的自动布局约束。为什么是这样?如何让 viewController 在导航控制器之外表现得像它一样?
如果我通过在所有东西周围悬挂 CRects 来做同样的布局,那么它会像我期望的那样完美地工作。
编辑:发现另一个有趣的工件,在自动布局模式下,如果我旋转模拟器,布局会自行修复并完美,如果我将它旋转回纵向,它会完全保持我认为应该的状态(白色并与顶部对齐) . 也许我应该加载视图,然后将其侧向旋转并向右旋转,哈!
伪代码:
--appdelegate--
window.Root = new uinavcontroller with AutoLayoutController as root
window.makewindowkeyandvisible
--autolayoutcontroller--
In ViewDidLoad
view.backgroundcolor = white
add(new button)
add(new textfield)
view.addConstraints(new constraint (button.top == view.top + padding)
view.addConstraints(new constraint (textfield.top == view.top + padding)
view.addConstraints(new constraint (textfield.right = button.left)
显示我期望的结构和弹簧:
AutoLayout 拉扯床: