Xcode:将对象与视图控制器边距对齐

Posted

技术标签:

【中文标题】Xcode:将对象与视图控制器边距对齐【英文标题】:Xcode: align objects with the View Controller margins 【发布时间】:2018-08-18 10:16:49 【问题描述】:

在这份 Apple 指南的帮助下,我开始学习 Swift:https://itunes.apple.com/it/book/app-development-with-swift/id1219117996?mt=11

现在我被困在一个小问题上,我想了解如何解决,但从指南中看不是很清楚。

我在第 398 页:“Guided Project: Personality Quiz”。

最初我必须在视图控制器的所有角落放置 4 个标签。

来自指南:

“要在所有屏幕尺寸上将您的表情符号放在各自的角落, 您需要为每个标签添加两个约束。从选择开始 左上角的标签,然后单击添加新约束按钮。使能够 顶部和前导约束,并将它们都设置为 0 像素, 确保标签边缘和标签边缘之间没有空间 视图的边距。默认情况下,视图的顶部有 20 像素 边距,左右各有16个像素的边距。所以当 您输入 0 像素,您实际上是在告诉标签定位 自身距离顶部 20 像素,距离左边缘 16 像素 看法。添加这两个约束”

所以,按照指南,我将第一个标签放在左上角,并添加两个约束

这就是结果。标签与安全区域对齐,而不是与视图边距对齐。

寻找另一个项目(不是我的),我认为我需要的两个约束是这些(或类似的):

【问题讨论】:

你使用的是什么版本的 Xcode?​​span> @matt 9.4.1 版 谢谢,让我看看能不能重现这个问题……稍等…… 是的,我可以!嗯,这是 Xcode 中的一个错误(我会说)。我可以给你一个解决方法... 这样,您非常很好地描述了这个问题。解释此类问题需要一些认真的屏幕截图工作,并且您投入了大量时间来做正确的事情。我希望所有的问题都这么清楚。 【参考方案1】:

我将其描述为 Xcode 中的一个错误。您要求与保证金相关的限制,但您没有得到它们。这不是很好!

之后您只需要编辑约束。在您的最终屏幕截图中,双击一个约束。使用弹出菜单将 Safe Area 约束更改为 Superview 约束。然后再次从菜单中选择以检查相对于边距。然后您可能必须修复常量值。对其他约束也这样做。

要么这样,要么只是不使用约束弹出框开始。相反,通过控制拖动按钮并使用出现的 HUD 来绘制约束。在 HUD 中按住 Option 以获得超级视图边距约束。

编辑哦,这是另一种解决方法;在形成约束之前,隐藏安全区域布局指南(取消选中此屏幕截图中的第 4 个复选框):

现在约束弹出框可以正常工作了。

【讨论】:

谢谢马特!所以..我尝试了最后一个解决方法,它现在不起作用https://drive.google.com/open?id=1_tMwS4oj1_uIokkZnhG72o55PUnzPDQq 哇,更好的屏幕工作!好吧,好吧,我以为我用 Xcode 9.4 尝试过,但也许我错误地用 Xcode 10 进行了测试。对于那个很抱歉。所以听起来你被其他建议卡住了...... :( 有效!!!!!!!!!!!!!!! (第一个解决方法)https://drive.google.com/open?id=1XrJVH41GZXNOpqFY5tYqhVddQf8ZP6Al 正确吗?再次感谢您 在新的截屏视频中你没有做任何限制,所以我不确定重点是什么...... https://drive.google.com/open?id=19qvMCaVGnakTrwNffScR4vROytdvZs1h

以上是关于Xcode:将对象与视图控制器边距对齐的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 显示冲突的约束

UIBarButtonItem自定义图像被拉伸(Xcode)

以编程方式创建绑定到视图控制器边距的约束

RelativeLayout 对齐父级 *side* + 边距 *side*

如何在 iOS 5 中将工具栏与每次旋转对齐?

Xcode:如何将对象从一个 viewControllers 视图移动到另一个 viewControllers 视图?