“导航条”的警告框架在运行时将不同出现在 Xcode 8 Swift 3中

在我升级到 Xcode 8之前,我还没有在这种情况下看到这个错误。我有不同的导航控制器。对于所有这些,我看到一个错误 Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375。实际上,这些导航控制器没有 Navigation barNavigation bar存在于子视图中。无论如何,我可以解决它的勾选和取消勾选框 Shows navigation barAttributes inspector。但不幸的是,每次我重新打开 Main.storyboard,这个警告就会再次出现。同样,如果我点击黄色三角形,然后在更新框架没有发生任何事情。

enter image description here

23937 次浏览

好了,看起来我已经解决了这个问题,我是这么做的。

像往常一样选择更新帧。打开一个不同的文件,然后单击故事板文件。如果这不起作用,那么重新启动 Xcode。它看起来像是在内部更新,但是 Interface Builder 的用户界面有时候会卡住。

如果您将属性“模拟大小”更改为“自由形式”,警告将消失。

在修补 Xcode 8之前,您可以将“ View as:”选项设置为“ iPhoneSE”以消除警告。不是很理想,但目前可行。

点击情节串连图板左下角的“视图”,选择一个不同的设备大小,然后再次点击,切换回原来的设备大小。这招对我很管用。

正如前面提到的 给你,您可以通过切换 Adjust Scrollview Insets on/off 来解决这个问题。

为了摆脱恼人的警告,我一直在手动编辑 Main.storyboard,删除以下内容中的“错位”:

<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">

一次黑客攻击,但是零警告比1:)更好

我已经从 View 改为: iPhone6S 到 iPhone5S,然后又改回 iPhone6S,并且 Xcode 做了所有的改动来删除警告。

遇到了同样的问题,以下是我所做的解决方法:

展开错误信息并单击警告细节。然后 Xcode 应该自动打开尺寸/位置设置。将当前值替换为警告详细信息中建议的值。

enter image description here

基本上,确保运行时中的大小与大小检查器中指定的大小相同。

你也可以点击你发布的图片旁边的图标(带白色圆圈的黄色三角形)。有时,它是一个红色的圆形图标) ,然后会有选项自动修复/调整的问题。

enter image description here

我选择了更新约束选项,然后相应地调整了新的约束。

请在视图控制器的 xcode 中更改您的设备预览,并编译和检查警告..。

Xcode 8有点问题,Interface Builder 重置为随机的 no,这会影响所有包含的视图。 尝试更改预览设备。

通过将视图控制器的模拟大小设置为自由形式,然后将宽度设置为375到320,我可以完全解决这个问题。

我尝试了以上所有的建议,但似乎没有工作。我觉得可能是更严重的窃听器。

我已经记录了一个错误与苹果的错误报告(链接: https://bugreport.apple.com/logon)-如果你想做同样的,那么请参考错误: 31355220,以便苹果可以绑在一起。更多的人报告它-更多的信息,他们将不得不修复这个烦恼。

这在 Xcode 8.3.1中对我很有用 在重新启动 Xcode 之后,它仍然可以工作。

enter image description here

  1. 选择导航控制器

enter image description here

  1. 显示大小检查器

enter image description here

  1. 将模拟尺寸更改为自由格式

enter image description here

  1. 将模拟大小改回固定大小

enter image description here

  1. 然后警告就消失了。

enter image description here

对于我来说,问题在于我隐藏了按下时的底部工具条(使用 IB 复选框)。

我不得不在“下栏”选项中选择“无”:

enter image description here

Xcode 12

我认为这个问题主要是因为不同设备的设备预览宽度不同。例如,iPhone12和 iPhone11有不同的屏幕宽度。如果你对某些视图的宽度设置了一个固定值,并给它一些限制,那么它可能不会采用你当前预览的 iPhone 屏幕宽度,所以它抱怨“运行时尺寸不同”。

对我来说,我设置了一个 UIView 和 ImageView 的宽度和高度作为固定值的尺寸检查器与 iPhone11预览。并给出了固定的10点在 IB 领先和落后约束。然后它抱怨如果我切换到 iPhone12预览版。

为了解决这个问题,我选择 viewController 并选择“ UpdateFrames”。然后它看起来更好,但是 Xcode 在更改后仍然抱怨一个冲突约束。最终,我在 IB 中手动找到并修复了它。