Xcode 安全区域已移动,现在无法编辑布局

问题描述 投票:0回答:1

在 Xcode 中,我尝试向我的应用程序添加一些自动布局约束,但在 Interface Builder 中,底部按钮始终固定在屏幕底部。从技术上讲,这就是我告诉它要做的事情,即与安全区域对齐。问题是,安全区不应该在那里。我不知道安全区域如何、为何或何时移动,但我目前不知道如何将其移回来。尺寸检查器中的选项呈灰色,因此我无法手动更改它(见图)。 我做错了什么?

size inspector not changeable

但是当运行应用程序模拟器时,布局是正确的,并且按钮区域位于小线上方。 in simulator

xcode autolayout safearea
1个回答
0
投票

看起来您已经连接了 Present Modally segue。

在 Storyboard 中设计时,Xcode 不知道所呈现控制器的运行时大小。

例如,如果我们有这个控制器布局(根视图背景设置为红色):

并将该控制器设置为初始控制器,然后运行应用程序,我们得到这个(如预期):

但是,如果我们以模态方式呈现该控制器,我们会得到:

请注意,底部看起来相同,但 Top 不显示红色根视图的一部分。这是因为呈现的控制器不再覆盖设备顶部的安全区域。

为了真正了解发生了什么,我们在 iPad 上运行该应用程序并以模态方式呈现该控制器:

现在,顶部和底部都不会受到安全区域的影响,因此我们在任何地方都看不到红色根视图。

所以...在 Storyboard 中,如果我们添加当前的 segue 连接,它看起来就像您所看到的:

如果我们在 Storyboard 设计时将 Device 更改为

iPad Pro 12.9"
布局,它看起来像这样:

您可能会发现在之前连接当前模态segue更容易在故事板中完成布局设计。

© www.soinside.com 2019 - 2024. All rights reserved.