iOS 14 启动屏幕故事板在 iOS 14 设备上不显示图像
Posted
技术标签:
【中文标题】iOS 14 启动屏幕故事板在 iOS 14 设备上不显示图像【英文标题】:iOS 14 Launch Screen storyboard doesn't display images on iOS 14 devices 【发布时间】:2020-09-22 19:13:26 【问题描述】:我有一个相当简单的初始屏幕,带有背景图像(方面填充)和一些自动布局的文本和内容。
只要您以 ios 14 设备或模拟器为目标,使用 Xcode 11.7 或 Xcode 12 构建也会发生同样的事情。
如果启动屏幕故事板中有图像,则启动屏幕将显示为纯黑色,并且屏幕上不会出现任何组件。如果我将图像源重命名为无效图像源,则会出现除图像之外的所有组件。
我尝试将图像移出资产目录,但没有成功。我尝试使用新的 iOS 14 启动屏幕 info.plist 选项,但无法复制我需要的设计,而且文档说仍然支持故事板启动屏幕,所以我无法弄清楚。
其他人看到这个并且有运气修复它吗?我已经尝试了我能想到的一切!堆栈上唯一的其他类似问题是here,但含糊不清,可能无关
【问题讨论】:
我不够熟悉,无法真正回答,但可能与您选择的特定图像有关。它是什么格式?什么尺寸? 我也尝试过各种格式和尺寸。 1024x024、2048x2048、png、jpg 都没有运气。我刚刚发现系统图像会显示,但项目或资产目录中不包含任何内容 我在更新到 XCode 12 和 iOS 14 后遇到了完全相同的问题。我在这里找到了一个新的启动屏幕 API -> ashishkakkad.com/2020/06/how-to-set-launch-screen-in-ios-14 【参考方案1】:以下是我为其他因设计限制而无法使用新启动屏幕 API 的人解决此问题的方法:
使用 Xcode 11 构建
将启动屏幕中使用的所有图像转换为 PNG
重命名目录中的图片资源并更新 故事板中的引用也是如此(这很重要!)
一开始就调用这个来清除闪屏缓存
didFinishLaunching
的(仅在调试模式下!):
@try
[[NSFileManager defaultManager] removeItemAtPath:[NSHomeDirectory() stringByAppendingString:@"/Library/SplashBoard"] error:&error];
@catch (NSException *exception)
NSLog(@"Failed to delete launch screen cache: %@", error);
之后,我的启动画面可以在 iOS 14 及之前的版本上正常运行。
【讨论】:
我在删除图像后清理启动画面,如下链接所示:***.com/a/35783070/9561145以上是关于iOS 14 启动屏幕故事板在 iOS 14 设备上不显示图像的主要内容,如果未能解决你的问题,请参考以下文章
iOS App-LaunchScreen.storyboard 在 ios 14.2 上显示为白色