那种经典的 Springs 和 Struts,又名“Anchor and Align”或“Autosizing Masks”是我理解的唯一一种调整大小管理。然而,在 XCode 4.6 中,使用 iOS 6 中引入的约束的“自动布局”是默认设置,它使某些简单的事情变得更难,同时让整个世界的新安排成为可能,一旦你学会了如何。 (需要明确的是,一些用户可能只关心在不与自动布局战斗的情况下获得一个简单的视图,因此马特早期提出了一种解决方法,即关闭自动布局,如下所示)
iOS 6 Layout Constraints,Interface Builder系统的编辑约束,我不懂。
XCode Interface Builder 会自动创建约束(例如在视图的边缘),它似乎以我理解的方式运行。
我不明白为什么在此处显示的 .xib 中以及在此处可用,为什么我不能让绿色和洋红色区域保持不变的边界(它们之间的白色区域)不会变厚也不会变薄,无论视图大小发生什么变化。
这意味着我需要绿色区域不要垂直调整大小而只调整水平大小,但它坚持将自己锚定到表单的底部,虽然再次从新的空白笔尖开始,但会恢复界面构建器,因此它会注意到相邻的再次绿色和洋红色视图,一旦界面构建器变得“愚蠢”,它坚持只根据其与父视图底部边缘的距离定义绿色视图的底部边缘,并且不会(对于任何数量的摆弄)否则使用仅仅是拖放操作。我还尝试了 Pin 命令,但没有找到有效的 pin 命令。
与界面构建器菜单或拖放进行任何斗争似乎都不足以让它摆脱其中一个限制。我不知道我应该做什么。删除约束?如何?据我所知,无论是从 IB Objects 窗格还是从 Utilities -> Size 检查器,都无法删除约束。有一个删除选项,但是当您单击约束区域中的“齿轮”图标按钮时,它在出现的下拉菜单中显示为灰色。
理想情况下,如果绿色区域随着视图变宽而调整大小,而不是随着它变高或变短,我会喜欢它。我认为这在其他所有工具中都很明显,但在 XCode+Autolayout 中,它要么根本不调整大小,要么在所有四个方向上调整大小。我无法删除或移除正在做我不想做的事情的约束。您是否必须对另一个视图内的每个视图有四个约束?
(更新 1:您不能删除任何会导致不明确或未指定布局的约束。)
(更新 2:有时如果 uiview 窗格不会对齐到同级,删除该 uiview 并再次尝试将允许它自然地“对齐”到同级,并且约束将相对于同级视图对象而不是父母。)
(更新 3:Matt 删除了他的解决方法,我在下面复制了它。)
对于那些一开始就不想使用 Autolayout 而只想要旧弹簧和支柱的人的解决方法:
第 1 步:关闭自动布局:
第 2 步:选择正确的自动调整大小蒙版: