任何设备的故事板安全区域错误/固定宽度

Posted

技术标签:

【中文标题】任何设备的故事板安全区域错误/固定宽度【英文标题】:Storyboard Safe Area wrong/fixed width for any device 【发布时间】:2018-01-22 19:22:59 【问题描述】:

在情节提要中的视图控制器中对视图进行了一些重新排列后,该特定视图控制器中的安全区域出现了错误。对于任何设备,我选择安全区域都不会更新其框架宽度。

在下面的 gif 中,我在文档大纲中选择了安全区域来说明这一点。

在设备中运行时,安全区域按预期工作。所以这是一个 Interface Builder 特定的问题。执行 Cmd+Shift+K 清理和删除派生数据不起作用。

那么,除了在新的视图控制器中重新创建它之外,是否有一种已知的方法来拯救该视图控制器?

【问题讨论】:

我也遇到同样的问题,你找到解决办法了吗? 和我一样的问题。我还没有找到解决方法。 对我来说,较大的 iPad 尺寸可以正常工作。不是我想要的,但至少故事板中的布局看起来不错。 XCode 12.4 - 这个错误仍然存​​在。 XCode - 只是充满了错误的筛选......只是对它的质量绝望...... 【参考方案1】:

我最近遇到了同样的问题。 我解决问题的方法是在故事板导航器中选择了“安全区域”。

之后我使用了约束控件并选择重置为建议的约束。

【讨论】:

【参考方案2】:

如果 UIStackView 包含至少一个多行 UILabel 而没有明确的首选宽度,则会发生此错误。我没有发现在所有情况下都能成功的简单解决方法。

【讨论】:

【参考方案3】:

以下是如何调试这些问题的提示:关闭场景中各个视图上的“已安装”复选框,直到问题消失。通过消除过程,您可以确定导致问题的控制或约束。

【讨论】:

以上是关于任何设备的故事板安全区域错误/固定宽度的主要内容,如果未能解决你的问题,请参考以下文章

UITableView 的故事板错误?

故事板上的 Xcode 9 和 9.1 选择的设备会影响部署设备上的视图宽度

为啥 UITableViewCell.layoutSubviews() 的 frame.width 为 600(通用故事板宽度)而不是 320(特定 iPhone 设备)?

跨大小类复制故事板[重复]

如何为特定设备而不是尺寸等级设计故事板

使用故事板中的自动布局使 UIButtons 居中