SpriteKit 应用程序仅在任务切换器中显示灰色/白色边框
Posted
技术标签:
【中文标题】SpriteKit 应用程序仅在任务切换器中显示灰色/白色边框【英文标题】:SpriteKit app shows grey/white border in task switcher only 【发布时间】:2021-09-16 19:11:03 【问题描述】:我正在使用 Xcode 12.5.1 并使用 SpriteKit 创建一个新的 ios 游戏项目:
-
文件
新项目
iOS、游戏
语言:Swift,游戏技术:SpriteKit
在 iOS 模拟器(例如“iPhone 12 mini”)上不做任何修改地运行它会导致这个屏幕:
这看起来不错,场景周围有黑色边框。但是,当我从底部滑动进入任务切换器时,黑色边框突然变成了灰色/白色边框:
我也尝试过像这样将Main.storyboard
中“视图”的“背景”属性更改为黑色,这对任务切换器的外观没有影响:
这应该很容易重现,只需创建默认的 SpriteKit 示例应用程序,在真机或模拟器上运行它并进入任务切换器视图。
我希望任务切换器中应用程序的背景在任务切换器视图中为黑色,就像应用程序运行时一样。请注意,我正在创建的应用程序对于我正在使用的SKSpriteNode
具有固定的纵横比,因此该解决方案不应涉及为场景设置不同的大小。基本上它应该适用于任何宽高比和我SKSpriteNode
在应用视图和应用切换器视图中的黑色信箱视图中的信箱。
【问题讨论】:
【参考方案1】:如果我不得不猜测,它看起来可能是由于暗/亮模式。如果应用在AppDelegate
类中使用window
,请尝试将其背景设置为.black
。
或者您可以指定您的应用仅在暗模式下工作(仅当您的应用适用于 iOS 13+ 时才执行此操作)。您可以通过将其添加到您的 plist 文件中来做到这一点:
<key>UIUserInterfaceStyle</key>
<string>Dark</string>
另外,如果您有物理设备,请尝试更改明暗模式,看看是否会导致问题
【讨论】:
谢谢,我试过了。将Info.plist
中的 UIUserInterfaceStyle 设置为字符串“Dark”(加上在手机中手动设置暗模式)没有帮助。另外,在我的AppDelegate
(有一个成员var window: UIWindow?
)中,我将window!.backgroundColor = .black
(强制展开以确保它确实做了一些事情,并且不会被忽略)放入func application(...)
正文中,但这并没有帮助要么。
哇,这是一个非常奇怪的问题,通常它为我解决了这样的问题,我想知道它是否与作为精灵套件应用程序有什么独特之处?【参考方案2】:
游戏应用模板似乎缺少 LaunchScreen 故事板,这可能会导致 iOS 回退并在某些情况下以不正确的大小呈现预览。要添加一个,您可以执行以下操作
-
从菜单栏中选择文件 > 新建 > 文件 (⌘N),然后选择情节提要。
将新故事板命名为“LaunchScreen.storyboard”。
通过选择打开新创建的 LaunchScreen.storyboard 文件
来自项目导航器 (⌘1)。
从 Storyboard 文档大纲中选择 View Controller 并确保在 Attributes Inspector (⌥⌘5) 中选择“Is Initial View Controller”。 (See Image)
从项目导航器 (⌘1) 中选择您的 Info.plist
在 Info.plist (↵) 中添加一个名为“Launch screen interface file base name”的新键,并将值设置为“LaunchScreen”。
这应该可以解决问题,但是您可能需要稍微更新游戏场景以适应纵横比的变化。
【讨论】:
以上是关于SpriteKit 应用程序仅在任务切换器中显示灰色/白色边框的主要内容,如果未能解决你的问题,请参考以下文章