水平对齐在 Xcode 故事板中不被视为 X 位置约束吗?

Posted

技术标签:

【中文标题】水平对齐在 Xcode 故事板中不被视为 X 位置约束吗?【英文标题】:Is horizontal align not considered an X position constraint in Xcode storyboard? 【发布时间】:2021-09-22 05:36:57 【问题描述】:

我是 Xcode 的新手,我正在尝试找出故事板约束。我想我已经掌握了窍门,但一个不断出现的问题仍然困扰着我。我有一个简单的标题,应该是水平居中的。所以我在容器中使用编辑器->对齐->水平。从视觉上看,这正是我想要的。但是有一个黄色警告说我需要一个 X 位置约束。为什么中心不被视为约束?

如果我确实设置了 X 位置约束,那么我的标题将不再水平居中于不同的屏幕尺寸。我该怎么办?

完整的错误消息是“需要约束:X 位置”

【问题讨论】:

确保标题位于 x 位置受限的视图中 - 要么设置明确的 xwidth,要么设置 leadingtrailing 你能显示minimal reproducible example吗? “Horizo​​ntally in Container”约束是您添加到视图中的唯一约束吗? @Sweeper 我当前的文件在左上角只有一个按钮(完全被限制并且没有问题),然后是前面提到的文本标题,它被限制在按钮下方几个像素处。页面上没有其他内容。 @aheze 我需要把它放在视图中吗?不使用视图我无法解决问题是否有特定原因? 哦,等等,您是通过“编辑器”菜单完成的!这实际上并没有添加任何约束。您能否显示您的故事板的屏幕截图,显示“黄色警告”? 【参考方案1】:

Editor 菜单中的“Align -> Horizo​​ntally in Container”菜单项实际上并没有添加任何约束。它对齐您的视图。

要添加“水平在容器中”约束,请使用右下角的这个按钮:

请注意,“水平在容器中”约束本身不会使视图的 X 位置明确,因为它只约束视图的 center X,而“X 位置”指的是 x视图上最左侧位置的坐标。视图的宽度也需要明确,以便 X 位置明确。您似乎已经为标签添加了宽度约束,所以这很好。如果你没有,也没关系,因为标签的宽度可以由它的内容决定。

您也不需要将标签放在另一个容器视图中(您似乎误解了aheze's comment)。

【讨论】:

非常感谢您的帮助。你知道为什么编辑器水平对齐实际上没有对齐任何东西吗?将其称为 align 似乎很奇怪,但实际上并没有给出约束。 @GabrieleScottodiVettimo 对我来说一点也不奇怪……它说的是“对齐”,而不是“添加对齐约束”……还请注意,这是许多 UI 编辑器中提供的功能,来自我的经验。

以上是关于水平对齐在 Xcode 故事板中不被视为 X 位置约束吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何处理 Xcode 故事板中的错位视图警告?

如何在 XCode 11 中更改图像的位置以进行纵向或水平对齐

如何在 Xcode 11 故事板中查看祖先和后代的约束?

如何在 xcode 故事板中以横向模式显示场景?

不需要xcode故事板中的大写标签

在 xcode 5 故事板中返回上一个 ViewController