Xcode 8 Swift 3中,“导航栏”的警告框在运行时将有所不同


143

在升级到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 bar中的复选框来解决此问题Attributes inspector。但不幸的是,每次我重新打开Main.storyboard此警告时,都会再次出现。另外,如果我单击黄色三角形,然后单击更新框架,则不会发生任何事情。

在此处输入图片说明


1
此处确认了相同的问题。建议的解决方法都不能解决该问题。
GregP

@GregP请检查我的解决方案并回复
KSR

@Ashish Kakkad,请检查我的解决方案并回复
KSR

提起rdar:// 28844288。随意欺骗openradar.me/radar?id=4985464104681472
纪尧姆·阿尔吉斯

这是我更新项目后困扰我的最后一条警告。
Sethmr '16

Answers:


154

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


37
这不能解决问题。关闭Xcode并再次打开,问题将再次出现。
Ashish Kakkad '16

2
这是窃听了我的地狱的。我只是尝试这样做,这的确取消了警告暂时。您始终可以来回切换“模拟大小”,以在警告再次出现时消除警告。超。烦死了
nekonari '16

5
只是临时解决方案-这不是答案。
–emem

5
更改此“模拟大小”(然后返回“推断的”或其他值),或“切换开/关调整Scrollview的插入量”。两者都将导致情节提要删除其misplaced="YES"。这是一个Xcode错误,并且此修复程序是强制刷新类型。取自@buildsucceeded答案。
bauerMusic

1
@MobileBloke通过强制刷新,我的意思是它将导致情节提要板视图重写(刷新)参数,重新评估并删除警告。它确实是一种刷新,强制只是意味着它本身并没有自动执行(应该如此),而是需要一些手动的任意更改。
bauerMusic's

35

如此处所述您可以通过打开/关闭“调整滚动视图插图”来解决此问题。


4
哇,(检查git)执行此操作时实际上misplaced="YES"会被删除。:/
成功

7
这样可以修复该问题,直到下次您关闭并重新打开该项目为止。尚未完全解决。
Casey Wagner

15

我已经从“查看方式:iPhone 6S”更改为“ iPhone 5S”,然后又更改回iPhone 6S,Xcode进行了所有更改以消除警告。


2
这工作了很短的时间-然后在Xcode再次对其进行处理之后-发生了相同的事情,并且再次出现了警告。在最新的Xcode上,这仍然对您有用吗?
UKDataGeek

12

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

在此处输入图片说明

  1. 选择导航控制器

在此处输入图片说明

  1. 转到显示尺寸检查器

在此处输入图片说明

  1. 将模拟大小更改为自由格式

在此处输入图片说明

  1. 将模拟大小改回固定

在此处输入图片说明

  1. 然后警告消失。

在此处输入图片说明


知道为什么这会起作用而不是“更新框架”按钮吗?

@guoc,兄弟您能帮我吗stackoverflow.com/questions/46375778 / ...
May Phyu

7

作为一种解决方法,为了摆脱烦人的警告,我一直在手动删除Main.storyboard,方法是删除以下位置的“放错位置”:

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

骇客,但最好是零警告而不是1 :)


稍后是否需要将其添加回去?只要我没有警告,我就不会在乎导航控制器的外观。这很有趣。情节提要会瞬间识别警告,然后以这种方式进入情节提要时,警告消失。
Sethmr '16

我做了同样的事情,然后不再触摸情节提要。一切正常。

问题是,当您重新加载时,它又回来了...其他人是否注意到,当发生此错误时,在旋转器运行的情况下加载情节提要需要很长时间?
UKDataGeek

6

单击情节提要板左下方的“查看为”,然后选择其他设备尺寸,然后再次单击它,并交换回原来的设备尺寸。这对我有用。


1
它也只是临时为我修复它
zero3nna

3

在修补Xcode 8之前,可以将“查看方式:”选项设置为“ iPhone SE”以消除警告。不太理想,但目前可以使用。


我正在使用SE ..但仍警告
Abdul Waheed

1
是的,我知道。但是,只要您将选择切换到其他选项,它们就会消失。如今,我从7开始,切换到SE,然后再回到7清除这些警告。或者只留下它们,而misplaced在提交更改时不检查属性。
nekonari '16

3

我尝试了以上所有建议,但似乎没有用。我认为这可能是更严重的错误。

我已经用Apple Bug Reporter(链接:https : //bugreport.apple.com/logon)记录了一个错误-如果您要这样做,请参考bug:31355220这样Apple可以将其捆绑在一起。报告此问题的人越多,他们将必须获得更多的信息来解决这一烦恼。


2

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


您只需要在没有父项的视图控制器上设置它(根视图控制器+也许更多,取决于情节
提要

1

遇到相同的问题,这是我要解决的问题:

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

在此处输入图片说明

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

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

在此处输入图片说明

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


4
在这种情况下不起作用。导航栏的“ X / Y /宽度/高度”字段均为灰色/不可编辑。
Slipp D. Thompson

@Ian Hmmm…我想我刚刚结束了xib的编辑,以便数字匹配。
斯利普D.汤普森


0

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

选择正常的更新帧。打开另一个文件,然后单击情节提要文件。如果这样不起作用,请重新启动Xcode。看起来它在内部进行更新,但有时有时接口构建器UI被卡住。


3
重新打开XCode后,该警告实际上消失了,但是,如果我打开了项目中的任何文件,再次打开main.storyboard这些警告便再次出现
Danny

0

请在xcode中为View控制器更改设备预览,然后编译并检查警告...

Xcode 8有点bug,“界面生成器”使用随机否将其重置,这会影响所有包含的视图。尝试更改预览设备。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.