Xcode 启动图像和全屏问题
Xcode launch images and full screen issues
我正在物理设备上测试我的应用程序(使用配置文件)。该设备是 iPad Air 2,iOS 版本 8.1。
我的应用程序没有全屏显示,所以我按照这个帖子的建议将 Default-568h@2x.png
添加到项目中,设法让它全屏显示:
Why [UIScreen mainScreen].bounds] is not returning full screen size?
但是,将其添加到 images.xcassets
后,我看到了:
问题 1) 为什么 Xcode 抱怨缺少 Default-568h@2x.png
启动图像,但明明在那里?
所以无论如何,这让我的应用程序以全屏模式启动,但启动图像没有出现。取而代之的是,在应用程序加载过程中只出现了一个普通的黑屏。
问题 2)为什么没有显示启动图像?
我删除了所有最终添加的启动图像,以尝试让某些东西正常工作(因为这是 iOS 并且反复试验似乎比逻辑过程更有效)。因此目前 images.xcassets
中不存在启动图像。但是,我的应用程序仍然全屏运行。我从设备上删除了已经安装的应用程序(通过使图标摆动并点击 'X'),从 Xcode 中选择 Product>Clean
并再次构建。没有运气。应用程序在以后的运行中仍然全屏显示。然后我尝试按照 EliSKoren 在此线程上的回答:
Launch image doesn't update
但是,我能找到的启动图像的唯一参考是模拟器,而不是物理设备。
问题 3) 非常努力地尝试不要松开它 ... 发生了什么!?为什么我的应用程序仍然全屏显示,即使我已经删除了启动图像?
这是因为 Xcode 为不同的设备提供了占位符,分别对应于视网膜或非视网膜和设备尺寸。
如您所见,您的图像在占位符上显示为“未分配”,因此 xcode 无法确定它用于哪个设备,因此图像未显示。
要更正此问题,请使用屏幕截图 --
编辑
请迁移以从此处获取分配给资产的启动图像
单击 Launch Image Sources -- Use assets catalog 弹出窗口,然后单击 migrate。
如您在属性检查器中所见,您可以选择所需的设备启动图像,它会为您提供。
通过单击占位符来检查它需要什么图像大小或分辨率,然后您只需从取景器中拖放这些图像。
希望这有帮助
编辑决赛
事实证明,OP 正在为 xcode 项目使用 cMake,并且默认情况下 xcode 已经安装了启动图像资产 JSON,但配置错误,因此创建了另一个Launch Image 没有覆盖现有的 JSON 至于 cmake 正在加载早期的配置。默认情况下,选择了通用设备,但完全未选中设备方向。
在获得项目的干净版本并让 Xcode 决定其默认启动图像资产并填充其中的图像后检查设备方向 JSON 解决了 OP 的问题。评论中的 link 中提到了进一步的讨论。
我正在物理设备上测试我的应用程序(使用配置文件)。该设备是 iPad Air 2,iOS 版本 8.1。
我的应用程序没有全屏显示,所以我按照这个帖子的建议将 Default-568h@2x.png
添加到项目中,设法让它全屏显示:
Why [UIScreen mainScreen].bounds] is not returning full screen size?
但是,将其添加到 images.xcassets
后,我看到了:
问题 1) 为什么 Xcode 抱怨缺少 Default-568h@2x.png
启动图像,但明明在那里?
所以无论如何,这让我的应用程序以全屏模式启动,但启动图像没有出现。取而代之的是,在应用程序加载过程中只出现了一个普通的黑屏。
问题 2)为什么没有显示启动图像?
我删除了所有最终添加的启动图像,以尝试让某些东西正常工作(因为这是 iOS 并且反复试验似乎比逻辑过程更有效)。因此目前 images.xcassets
中不存在启动图像。但是,我的应用程序仍然全屏运行。我从设备上删除了已经安装的应用程序(通过使图标摆动并点击 'X'),从 Xcode 中选择 Product>Clean
并再次构建。没有运气。应用程序在以后的运行中仍然全屏显示。然后我尝试按照 EliSKoren 在此线程上的回答:
Launch image doesn't update
但是,我能找到的启动图像的唯一参考是模拟器,而不是物理设备。
问题 3) 非常努力地尝试不要松开它 ... 发生了什么!?为什么我的应用程序仍然全屏显示,即使我已经删除了启动图像?
这是因为 Xcode 为不同的设备提供了占位符,分别对应于视网膜或非视网膜和设备尺寸。 如您所见,您的图像在占位符上显示为“未分配”,因此 xcode 无法确定它用于哪个设备,因此图像未显示。 要更正此问题,请使用屏幕截图 --
编辑
请迁移以从此处获取分配给资产的启动图像
如您在属性检查器中所见,您可以选择所需的设备启动图像,它会为您提供。 通过单击占位符来检查它需要什么图像大小或分辨率,然后您只需从取景器中拖放这些图像。 希望这有帮助
编辑决赛
事实证明,OP 正在为 xcode 项目使用 cMake,并且默认情况下 xcode 已经安装了启动图像资产 JSON,但配置错误,因此创建了另一个Launch Image 没有覆盖现有的 JSON 至于 cmake 正在加载早期的配置。默认情况下,选择了通用设备,但完全未选中设备方向。 在获得项目的干净版本并让 Xcode 决定其默认启动图像资产并填充其中的图像后检查设备方向 JSON 解决了 OP 的问题。评论中的 link 中提到了进一步的讨论。