Interface Builder 约束问题

Posted

技术标签:

【中文标题】Interface Builder 约束问题【英文标题】:Interface Builder Constraints Problems 【发布时间】:2019-08-16 20:18:56 【问题描述】:

我正在学习 ios 开发教程,但在 xcode 的界面构建器中遇到了自动布局和约束问题。我有 xcode 10.3。

我在情节提要上放置了 2 对对象,每对对象都有一个标签(文本 =“???”)和一个按钮。

我在没有自动布局的情况下使用 iphone 8 在模拟器中运行,它看起来不错:

然后我被指示使用自动布局,所以我选择顶部标签,然后添加新的对齐约束,选择“水平居中”并按“添加 1 个约束”:

一旦我在模拟器中运行它,我水平居中的标签就会呈现在可视区域的最顶部。我完全按照本教程进行了多次尝试,但每次都遇到这个问题。

本教程似乎是为早期版本的 xcode 编写的。

【问题讨论】:

如果添加一个约束,则必须添加其他约束。到目前为止,您添加的只是标签上的一个“centerX”约束。 你至少需要一个约束——你说过你想要标签在水平中心,但你没有约束垂直位置 附带说明,如果教程告诉您添加 only 该水平约束,那么这是一个糟糕的教程。再找一个。 教程是大书呆子牧场的ios编程第6版。书中的截图指定选择顶部标签并添加第一个约束(“添加新的对齐约束并选择“水平居中”)然后选择其余的 UI 对象并单击“添加新约束”对话框,选择“对齐”复选框并选择“水平中心”。问题可能是,至少在我的 xcode 版本中,“添加新约束”对话框中似乎没有“对齐”复选框。 【参考方案1】:

你必须定义更多的约束,如:

结果

或者更好,使用垂直Stack Views;所以你只需要定义两个约束(水平居中/垂直居中):

您绝对应该学习另一个教程。

【讨论】:

是的,我联系了一位在 ios 开发方面非常有经验的同事,他帮助了我。这本书是不正确的,至少对于我的 xcode 版本来说是不正确的。

以上是关于Interface Builder 约束问题的主要内容,如果未能解决你的问题,请参考以下文章

Interface Builder 中的相对自动布局约束

在 Interface Builder 中删除自动布局(约束)

使用比率时在 Interface Builder 中发出平衡约束

iPad 不遵守 Interface Builder 的 AutoLayout 约束

Xcode Interface builder 中的 Nib 视图不应用自动布局约束

如何(轻松)在 Xcode 6 的 Interface Builder 中删除约束