0

我正在尝试在打算为 iOS 设备部署的本机应用程序上设置启动画面。

众所周知,有几个不同的屏幕可供定位(因像素密度、纵横比和其他因素而异),所以我必须提供一些图像。似乎至少有三种方法可以提供允许 iOS 决定在任何场景中使用哪个图像的映射;我的理解是,这些方法中的任何一种本身就足够了

  1. 将所有图像文件放在 Xcode 项目的根目录下,根据特定的约定(Default.pngDefault@2x~ipad.pngDefault-568h@2x.png等)命名它们
  2. 在项目的 Info.plist 中定义一个UILaunchImages字典项,每个场景都有一个字典条目指向所需的图像
  3. 在资产目录中创建“LaunchImage”类型的项目,将图像拖放到每个场景的占位符上,然后指向项目目标的“App Icons and Launch Images”配置中的 LaunchImage 项目

我的强烈偏好是使用第三种方法,这在很大程度上是因为在定义每个显示场景的识别特征方面,它需要的技术精度最低。但是当我在我的 iPhone5 上测试时它不起作用——启动画面是黑色的,而不是显示我的彩色图像。我在 LaunchImage 板上的每个位置都放置了一个图像,这表明 Xcode6 附带的 LaunchImage 骨架根本没有对应于 iPhone5 的位置。这不可能。(是的,我的图片是 PNG。)

很多教程告诉我在资产目录中创建一个新的图像集(它有一个不同的骨架),但是“应用程序图标和启动图像”配置只允许我选择是 LaunchImages 的项目。

网上有很多资源记录了前两种方法——即依赖文件系统约定,或在 Info.plist 中定义映射——但似乎没有任何东西真正解决资产目录方法。

有人可以指出我正确的方向吗?


编辑:有趣的是,当我将我的@1x 图像放在 LaunchImage 板上的每个位置时,该项目无法构建,因为“没有适用的内容”。当我将我的@2x 图像放入所有 Retina 点时,应用程序会构建,但初始屏幕是黑色的。

这是否揭示了什么?

4

1 回答 1

0

经过一番试验,结果发现手机默默地拒绝了分配给该场景的图像,因为图像尺寸不正确。我提供的图像比适当的要大得多,显然 iOS 处理此问题的方式是显示黑色启动屏幕而不发出任何有用的诊断信息。

我从这个 SO post得到了确切的尺寸。

于 2016-03-03T03:54:51.400 回答