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 上显示为白色

IOS 启动屏幕故事板以不同的方向显示

故事板在 iOS 5 中是如何工作的?

与从 IDE 构建/运行相比,iOS 14 不允许 Flutter 应用程序(仍处于开发阶段)从主屏幕启动

iOS 启动屏幕故事板与启动图像

Xcode:如何在 IOS5 故事板中添加新的标签屏幕?