SceneKit 场景在大屏幕上被装箱

SceneKit scene being letter boxed on larger screens

将我的测试设备升级到 iPhone 6s 和 6s Plus 后,我的视图两侧出现信箱效果(而 phone 处于水平状态)。 (我的项目只是水平方向)

这应该是对视图约束的简单修复。然而,这个项目是在 2 年前开始的,我相信我可能已经使用 Apple 示例应用程序开始了。

因此我不知道在哪里可以更改此类设置。我可以轻松地更改 SpriteKit 叠加层以将屏幕与适当的键匹配,但是由于 SceneKit 依赖于视图,并且由于我在这方面缺乏知识而隐藏了视图,所以我做不到。

TL;博士:

为避免信箱,您需要提供一个 Interface Builder 启动屏幕(.xib 或 .storyboard)。

背景

当 iPhone 5(第一个屏幕大于 320x480 逻辑点)问世时,Apple 为系统设置了一种方法来判断应用程序是否考虑了该屏幕尺寸,或者如果它是“旧版”。

除了 320x480 的启动图像(通常命名为 Default.png,Default@2x.png 用于视网膜),您还必须为 4 英寸显示器提供额外的 320x568 点(640x1136 像素) .

如果系统找不到它,它会假定是一个“旧版”应用程序,并且 运行 它在视图上方和下方有黑色填充,这是它的“预期”大小 320x480(所以布局没有中断)。

之后,iPhone6和6+出来了,使用固定位图作为启动画面变得越来越没有意义; Apple 明智地引入了 xib 和基于故事板的启动屏幕以支持多种屏幕尺寸(例如使用自动布局)。

我还没有亲眼看到它(因为我在 拿到 6/6+ 之前采用了发布故事板 ),但我假设是同一种字母-装箱发生在设计时最多考虑 iPhone 5/5s 的应用程序(即捆绑一个 4 英寸的准备启动图像但没有动态启动屏幕),这就是这次发生在你身上的事情。