为什么不默认xcassets LaunchImage支持开箱即用的iPhone5?

时间:2016-03-02 16:23:48

标签: ios xcode launchimage

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

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

  1. 将所有图像文件放在Xcode项目的根目录中,根据特定约定(Default.pngDefault@2x~ipad.pngDefault-568h@2x.png等命名它们。)
  2. 在项目的Info.plist中定义UILaunchImages字典项,并为每个指向所需图像的方案添加字典条目
  3. 创建一个类型" LaunchImage"在资产目录中,将图像拖放到每个方案的占位符中,然后指向项目目标中的LaunchImage项目"应用程序图标和启动图像"构造
  4. 我强烈倾向于使用第三种方法,这在很大程度上是因为就定义每种显示方案的识别特征而言,它需要最少的技术精度。但是当我在我的iPhone5上测试它时它不起作用 - 闪屏是黑色的,而不是显示我的彩色图像。我在LaunchImage板上的每个位置都放置了一个图像,这告诉我Xcode6附带的LaunchImage骨架根本没有一个与iPhone5相对应的点。那不是对的。 (是的,我的图片是PNG。)

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

    在线有很多资源可以记录前两种方法 - 即依赖于文件系统约定,或者在Info.plist中定义映射 - 但似乎并没有真正解决资产目录方法。

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

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

    这会揭示某些事情吗?

1 个答案:

答案 0 :(得分:0)

经过一些实验,结果证明手机正在默默地拒绝分配给该场景的图像,因为图像尺寸不正确。我提供的图像比适当的图像略大,显然iOS处理它的方式是显示黑色启动屏幕而不会发出任何有用的诊断信息。

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