水平对齐在 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 位置受限的视图中 - 要么设置明确的x
和 width
,要么设置 leading
和 trailing
。
你能显示minimal reproducible example吗? “Horizontally in Container”约束是您添加到视图中的唯一约束吗?
@Sweeper 我当前的文件在左上角只有一个按钮(完全被限制并且没有问题),然后是前面提到的文本标题,它被限制在按钮下方几个像素处。页面上没有其他内容。
@aheze 我需要把它放在视图中吗?不使用视图我无法解决问题是否有特定原因?
哦,等等,您是通过“编辑器”菜单完成的!这实际上并没有添加任何约束。您能否显示您的故事板的屏幕截图,显示“黄色警告”?
【参考方案1】:
Editor 菜单中的“Align -> Horizontally in Container”菜单项实际上并没有添加任何约束。它仅对齐您的视图。
要添加“水平在容器中”约束,请使用右下角的这个按钮:
请注意,“水平在容器中”约束本身不会使视图的 X 位置明确,因为它只约束视图的 center X,而“X 位置”指的是 x视图上最左侧位置的坐标。视图的宽度也需要明确,以便 X 位置明确。您似乎已经为标签添加了宽度约束,所以这很好。如果你没有,也没关系,因为标签的宽度可以由它的内容决定。
您也不需要将标签放在另一个容器视图中(您似乎误解了aheze's comment)。
【讨论】:
非常感谢您的帮助。你知道为什么编辑器水平对齐实际上没有对齐任何东西吗?将其称为 align 似乎很奇怪,但实际上并没有给出约束。 @GabrieleScottodiVettimo 对我来说一点也不奇怪……它说的是“对齐”,而不是“添加对齐约束”……还请注意,这是许多 UI 编辑器中提供的功能,来自我的经验。以上是关于水平对齐在 Xcode 故事板中不被视为 X 位置约束吗?的主要内容,如果未能解决你的问题,请参考以下文章