【问题标题】:iPhone模拟器上的SKView框架不正确
【发布时间】:2022-01-23 06:13:49
【问题描述】:

我的目标是在 iPhone 12 Pro Max 上构建和运行 Xcode SpriteKit 模板项目。我将使用 Xcode 版本 12.5 (12E262)。我过去做过很多项目,但是最近,当应用启动时,视图的框架不正确。

我将通过一个可重复的示例向您展示我的意思。
请非常小心地执行以下步骤:

  1. 打开您的 Xcode 应用程序
  2. 在菜单中选择:文件 > 新建 > 项目...
  3. 选择模板:iOS、游戏
  4. 点击“下一步”
  5. 将您的产品命名为“Foo”或其他简单的名称
  6. 点击“下一步”
  7. 点击“创建”
  8. 在菜单中选择:产品 > 目的地 > iPhone 12 Pro Max
  9. 在菜单中选择:产品 > 运行
  10. 现在,等待您的模拟器启动并瞧...
  11. 在菜单中选择:查看 > 进入全屏

对于那些无法查看图像的人:
我在模拟 iPhone 启动后对其进行了截图。由于我们正在运行 SpriteKit 模板项目,因此模拟器通常显示灰色背景,中间有文本“Hello World”。经过进一步检查,灰色背景的尺寸似乎并没有以最佳方式适合 iPhone。事实上,灰色背景的比例是(1.5:1),而 iPhone 12 Pro Max 的比例大约是(2.16:1),差别很大。这会导致视图上方和下方出现大的黑色矩形。好吧,这很烦人!


在文件 GameViewController.swift 中,我在第 22 行的 viewDidLoad() 方法中添加了:

print(view.frame.size, scene.size) // prints (320.0, 480.0) (750.0, 1334.0)

我注意到:

  • view.frame.size 的比率不正确:480 : 320 = (1.5:1)
  • scene.size 的正确比例为:1334 : 750 ~ (1.78:1)

我好像找到了罪魁祸首,但我不知道如何解决它。

【问题讨论】:

  • 问题:你想让scene.size和view.size一样吗?

标签: swift sprite-kit skview


【解决方案1】:

我刚刚找到了一个基于Background is not filling the whole view Spritekit的解决方案

显然,您必须添加一个启动屏幕。
有两种方法可以做到这一点:

选项 1

在 Info.plist 中,添加 Launch screen interface file base name 标签,然后输入“Main”作为它的值。

选项 2

转到常规 > 应用程序图标和启动图像。您会注意到“启动屏幕文件”是空的。只需输入“主要”

【讨论】:

    猜你喜欢
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多