"Navigation bar" 的警告框将在 运行 时不同出现在 Xcode 8 Swift 3
Warning frame for "Navigation bar" will be different at run time appears in 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 bar
。 Navigation bar
存在子视图。无论如何,我可以通过勾选和取消勾选 Attributes inspector
中的复选框 Shows navigation bar
来解决它。但不幸的是,每次我重新打开 Main.storyboard
这个警告都会再次出现。另外,如果我点击黄色三角形,然后点击更新帧,则没有任何反应。
好的,看来我已经解决了这个问题。这就是我所做的。
Select 像往常一样更新帧。打开另一个文件,然后单击故事板文件。如果这不起作用,则重新启动 Xcode。看起来它正在内部更新,但界面构建器 UI 有时会卡住。
如果将 属性 "Simulated Size" 更改为 "Freeform",警告将消失。
在Xcode 8 打补丁之前,您可以将"View as:" 选项设置为"iPhone SE" 以消除警告。不理想,但目前有效。
点击情节提要左下角的 "View As" 并选择不同的设备尺寸,然后再次点击并切换回您开始使用的设备尺寸。这对我有用。
如前所述here您可以通过切换调整滚动视图插入来解决此问题on/off。
作为一种解决方法,只是为了摆脱烦人的警告,我一直在手动编辑 Main.storyboard,方法是删除 'misplaced' in:
<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">
一个 hack,但是零个警告而不是 1 个警告很好 :)
我已经从 View as: iPhone 6S 更改为 iPhone 5S,然后又改回 iPhone 6S,并且 Xcode 进行了所有更改以删除警告。
有同样的问题,这是我解决的问题:
展开错误信息并单击警告详细信息。 Xcode 应该会自动打开 dimension/position 设置。将当前值替换为警告详细信息中建议的值。
基本上,请确保运行时的大小与您在大小检查器中指定的大小相同。
您也可以单击您发布的图片旁边的图标(黄色三角形和白色圆圈。有时,它是一个红色圆圈图标),然后会出现自动 fix/adjust 问题的选项。
我选择了更新约束选项,然后相应地调整了新约束。
请在 xcode 中为视图控制器更改设备预览并编译并检查警告...
Xcode 8 有点问题,Interface builder 使用随机编号重置它,这会影响所有包含的视图。
尝试更改您的预览设备。
通过将视图控制器的模拟大小设置为自由形式,然后将宽度从 375 设置为 320,我能够完全解决这个问题。
我尝试了以上所有建议,但似乎没有用。我认为这可能是一个更严重的错误。
我已经用 Apple Bug Reporter(link: https://bugreport.apple.com/logon) 记录了一个错误 - 如果你想做同样的事情,请参考错误:31355220
以便 Apple 可以把它绑在一起。报告它的人越多 - 他们将需要越多的信息来解决这个烦恼。
这对我有用 Xcode 8.3.1
重启后Xcode,还是可以的
- Select 导航控制器
- 转到显示尺寸检查器
- 将模拟大小更改为自由形式
- 将模拟大小改回固定大小
- 然后警告消失。
对我来说,问题是我在推送时隐藏了底部栏(使用 IB 复选框)。
我必须 select 'none' 在 'bottom bar' 选项中:
Xcode 12
我认为这个问题主要是因为设备预览的宽度因设备而异。例如。 iPhone 12 和 iPhone 11 的屏幕宽度不同。如果您为某些视图的宽度设置一个固定值并给它一些约束,那么它可能不会采用您当前预览的 iPhone 的屏幕宽度,因此它会抱怨“运行 时间内的尺寸不同”。
对我来说,我在带有 iPhone 11 预览的尺寸检查器中将 UIView 和 ImageView 的宽度和高度设置为固定值。并在 IB 中为其提供固定的 10 点前导和尾随约束。如果我切换到 iPhone 12 预览,它就会抱怨。
为了修复它,我 select viewController 并选择了“更新帧”。然后它看起来好多了,但是 Xcode 在更改后仍然抱怨一个冲突约束。最终,我在IB中手动找到并修复了它。
在我升级到 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
存在子视图。无论如何,我可以通过勾选和取消勾选 Attributes inspector
中的复选框 Shows navigation bar
来解决它。但不幸的是,每次我重新打开 Main.storyboard
这个警告都会再次出现。另外,如果我点击黄色三角形,然后点击更新帧,则没有任何反应。
好的,看来我已经解决了这个问题。这就是我所做的。
Select 像往常一样更新帧。打开另一个文件,然后单击故事板文件。如果这不起作用,则重新启动 Xcode。看起来它正在内部更新,但界面构建器 UI 有时会卡住。
如果将 属性 "Simulated Size" 更改为 "Freeform",警告将消失。
在Xcode 8 打补丁之前,您可以将"View as:" 选项设置为"iPhone SE" 以消除警告。不理想,但目前有效。
点击情节提要左下角的 "View As" 并选择不同的设备尺寸,然后再次点击并切换回您开始使用的设备尺寸。这对我有用。
如前所述here您可以通过切换调整滚动视图插入来解决此问题on/off。
作为一种解决方法,只是为了摆脱烦人的警告,我一直在手动编辑 Main.storyboard,方法是删除 'misplaced' in:
<navigationBar key="navigationBar" opaque="NO" contentMode="scaleToFill" misplaced="YES" translucent="NO" id="Os1-Xh-7XN">
一个 hack,但是零个警告而不是 1 个警告很好 :)
我已经从 View as: iPhone 6S 更改为 iPhone 5S,然后又改回 iPhone 6S,并且 Xcode 进行了所有更改以删除警告。
有同样的问题,这是我解决的问题:
展开错误信息并单击警告详细信息。 Xcode 应该会自动打开 dimension/position 设置。将当前值替换为警告详细信息中建议的值。
基本上,请确保运行时的大小与您在大小检查器中指定的大小相同。
您也可以单击您发布的图片旁边的图标(黄色三角形和白色圆圈。有时,它是一个红色圆圈图标),然后会出现自动 fix/adjust 问题的选项。
我选择了更新约束选项,然后相应地调整了新约束。
请在 xcode 中为视图控制器更改设备预览并编译并检查警告...
Xcode 8 有点问题,Interface builder 使用随机编号重置它,这会影响所有包含的视图。 尝试更改您的预览设备。
通过将视图控制器的模拟大小设置为自由形式,然后将宽度从 375 设置为 320,我能够完全解决这个问题。
我尝试了以上所有建议,但似乎没有用。我认为这可能是一个更严重的错误。
我已经用 Apple Bug Reporter(link: https://bugreport.apple.com/logon) 记录了一个错误 - 如果你想做同样的事情,请参考错误:31355220
以便 Apple 可以把它绑在一起。报告它的人越多 - 他们将需要越多的信息来解决这个烦恼。
这对我有用 Xcode 8.3.1 重启后Xcode,还是可以的
- Select 导航控制器
- 转到显示尺寸检查器
- 将模拟大小更改为自由形式
- 将模拟大小改回固定大小
- 然后警告消失。
对我来说,问题是我在推送时隐藏了底部栏(使用 IB 复选框)。
我必须 select 'none' 在 'bottom bar' 选项中:
Xcode 12
我认为这个问题主要是因为设备预览的宽度因设备而异。例如。 iPhone 12 和 iPhone 11 的屏幕宽度不同。如果您为某些视图的宽度设置一个固定值并给它一些约束,那么它可能不会采用您当前预览的 iPhone 的屏幕宽度,因此它会抱怨“运行 时间内的尺寸不同”。
对我来说,我在带有 iPhone 11 预览的尺寸检查器中将 UIView 和 ImageView 的宽度和高度设置为固定值。并在 IB 中为其提供固定的 10 点前导和尾随约束。如果我切换到 iPhone 12 预览,它就会抱怨。
为了修复它,我 select viewController 并选择了“更新帧”。然后它看起来好多了,但是 Xcode 在更改后仍然抱怨一个冲突约束。最终,我在IB中手动找到并修复了它。