在我升级到XCode 8
之前,在这种情况下我没有看到此错误。我有不同的导航控制器。对于所有这些,我看到错误Frame for "Navigation bar" will be different at the run time. Navigation bar "Expected: width=384, Actual: width=375
。实际上,这些导航控制器没有Navigation bar
。子视图存在Navigation bar
。无论如何,我可以通过勾选解决它并取消勾选Shows navigation bar
中的复选框Attributes inspector
。但不幸的是,每次重新打开Main.storyboard
时,此警告都会再次出现。此外,如果我点击黄色三角形,然后在更新帧上没有任何事情发生。任何想法?
答案 0 :(得分:153)
如果将属性“模拟大小”更改为“自由形式”,警告将消失。
答案 1 :(得分:34)
正如前面提到的here,你可以通过打开/关闭调整Scrollview Insets来解决这个问题。
答案 2 :(得分:15)
我已从View为:iPhone 6S更改为iPhone 5S,然后更改回iPhone 6S,Xcode执行了所有更改以删除警告。
答案 3 :(得分:12)
这在Xcode 8.3.1中对我有用 重新启动Xcode后,它仍然有效。
答案 4 :(得分:7)
作为一种解决方法只是为了摆脱烦人的警告,我一直在手动编辑Main.storyboard,删除错误的'在:
<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">
一个hack但是很好的是没有警告而不是1:)
答案 5 :(得分:6)
单击情节提示板左下角的“查看方式”,选择不同的设备大小,然后再次单击它并交换回您开始使用的设备大小。这对我有用。
答案 6 :(得分:3)
在修补Xcode 8之前,您可以将“查看为:”选项设置为“iPhone SE”以消除警告。不理想,但现在有效。
答案 7 :(得分:3)
我尝试了以上所有建议,但似乎没有用。我认为这可能是一个更严重的错误。
我已经记录了Apple Bug Reporter的错误(链接:https://bugreport.apple.com/logon) - 如果你想这样做,那么请参考bug:31355220
以便Apple可以将它绑在一起。报告的人越多 - 他们需要解决这些烦恼的信息就越多。
答案 8 :(得分:2)
通过将视图控制器的模拟大小设置为自由形式然后将宽度设置为375到320,我完全可以摆脱这个问题。
答案 9 :(得分:1)
有同样的问题,这就是我要解决的问题:
展开错误信息,然后单击警告详细信息。然后Xcode应自动打开尺寸/位置设置。将当前值替换为警告详细信息中建议的值。
基本上,请确保运行时的大小与您在大小检查器中指定的大小相同。
您还可以点击您发布的图片旁边的图标(带有白色圆圈的黄色三角形。有时,它是一个红色圆圈图标),然后会有自动修复/调整问题的选项。
我选择了更新约束选项,然后相应地调整了新约束。
答案 10 :(得分:1)
答案 11 :(得分:0)
好的,所以看起来我已经解决了这个问题。这就是我的所作所为。
选择正常的更新帧。打开另一个文件,然后单击故事板文件。如果这不起作用,那么重新启动Xcode。它看起来像是在内部更新,但界面构建器UI有时会被卡住。
答案 12 :(得分:0)
请更改您的设备预览xcode for View控制器并编译并检查警告......
Xcode 8有点错误,接口构建器使用随机no重置它,这会影响所有包含的视图。 尝试更改预览设备。
答案 13 :(得分:0)
Xcode 12
我认为这个问题主要是由于每种设备的设备预览宽度不同。例如。 iPhone 12和iPhone 11具有不同的screenWidth。如果您在某个视图的宽度上设置一个固定值并赋予它一些约束,则它可能无法采用当前预览的iPhone的屏幕宽度,因此会抱怨“运行时大小不同”。
对我来说,我使用iPhone 11预览在大小检查器中将UIView和ImageView的宽度和高度设置为固定值。并在IB中给定10点领先和落后约束。然后它抱怨我是否切换到iPhone 12预览。
要修复此问题,我选择viewController并选择“更新框架”。然后看起来更好,但是Xcode在更改后仍然抱怨一个冲突约束。最终,我在IB中手动找到并修复它。