我正在 Xcode 5中构建一个 iOS 应用程序,我在添加布局约束方面遇到了麻烦。在 Xcode 4.x 中,我可以只向任何 UI 元素添加容器(superview)的前导/尾随/顶部/底部空格。现在,我只有一个选择:
我想在我的文本视图中添加一个“底部空间到 superview”约束。它说“距离最近的邻居”,但我不想创建一个约束“最近的邻居”,我有其他东西在我的文本视图,我不想创建一个约束与该。如果在我的文本视图下没有其他对象,它将正确地向容器添加约束。但是如果我试图改变任何东西,一切都会搞砸: 我需要将所有视图移到其他地方,然后添加约束,然后添加将其他视图移回。如果我在文本视图和 UI 元素之间添加一个约束(在这个例子中是一个按钮) ,它就不起作用了(一切看起来都很正常: 按钮对 superview 的底部有一个约束,文本视图对按钮有一个垂直间距约束,而且没有冲突约束)。UI 元素出现在不同(3.5英寸)屏幕方向的屏幕边界之外。是 Interface Builder 有问题还是我漏掉了什么?当我可以正确地设置所有东西时,当我调整 Interface Builder 屏幕的大小时,我的控制看起来仍然是出界的,但是在3.5英寸的模拟器/设备上可以正确显示。在 Xcode 5中使用新的 Interface Builder 约束来设计 UI 的“最佳实践”是什么?
更新: 我在另一个项目中遇到了同样的问题。我试图通过 CTRL 将一个视图的顶部和顶部的布局指南完全对齐——将我的控件拖动到它说“顶部布局指南”的位置,它试图将我控件的底部与布局指南对齐(大约 -470点) ,而不是沿着我控件的顶部对齐,这没有任何意义,因为控件本身应该在可变高度的屏幕上布局(例如普通和4英寸的 iPhone,以及未来可能的其他布局)。.).下面是正在发生的事情的截图:
我得到了这个约束:
我怎样才能让 Interface Builder 把视图的 头儿对齐到顶部的布局指南?
更新2: 我找到了一个变通方法。我首先调整视图的大小以降低它的高度(这样它的顶部不会重叠或非常接近顶部布局指南) ,然后我用 CTRL + 将它拖到顶部布局指南。看起来运行正常。连接之后,我再次将视图调整到所需的大小并选择 Update Constraints
。它可以工作,但仍然不是一个解决方案,因为它需要调整视图的大小、连接、再次调整大小和更新约束。