为什么默认的 xcassets LaunchImage 不支持开箱即用的 iPhone5?
Why doesn't default xcassets LaunchImage support iPhone5 out of the box?
我正在尝试在我打算为 iOS 设备部署的本机反应应用程序上设置启动画面。
众所周知,有几种不同的屏幕可供选择(因像素密度、宽高比和其他因素而异),因此我必须提供一些图像。似乎至少有三种方法可以提供允许 iOS 决定在任何情况下使用哪个图像的映射; 据我了解,这些方法中的任何一个 本身就足够了:
- 将所有图片文件放在Xcode项目的根目录下,按照特定的约定命名(
Default.png
、Default@2x~ipad.png
、Default-568h@2x.png
等)
- 在项目的 Info.plist 中定义一个
UILaunchImages
字典项,每个场景都有一个指向所需图像的字典条目
- 在资产目录中创建类型为 "LaunchImage" 的项目,将图像拖放到每个场景的占位符上,然后指向项目目标 "App Icons and Launch Images" 中的 LaunchImage 项目配置
我强烈倾向于使用第三种方法,这在很大程度上是因为就定义每个显示场景的识别特征而言,它需要的技术精度最低。但是当我在我的 iPhone5 上测试时它不起作用——初始屏幕是黑色的,而不是显示我的彩色图像。我在 LaunchImage 板上的每个位置都放置了一个图像,这表明 Xcode6 附带的 LaunchImage 骨架根本没有与 iPhone5 相对应的位置。那是不对的。 (是的,我的图像是 PNG。)
很多教程告诉我在资产目录中创建一个新的图像集(它有不同的骨架),但是 "App Icons and Launch Images" 配置只允许我选择 LaunchImages 项目。
有很多在线资源记录了前两种方法——即依赖文件系统约定,或在 Info.plist 中定义映射——但似乎没有真正解决资产目录方法.
有人能指出我正确的方向吗?
编辑:有趣的是,当我把我的@1x 图像放在 LaunchImage 板上的每个位置时,项目无法构建,因为 "there is no applicable content." 当我把我的@所有 Retina 点的 2x 图像,应用程序构建,但初始屏幕是黑色的。
这是否揭示了什么?
经过一些试验,结果是 phone 默默地拒绝了分配给该场景的图像,因为图像尺寸不正确。我提供的图像比适当的略大,显然 iOS 处理此问题的方式是显示黑色启动屏幕,而不发出任何有用的诊断信息。
我从 this SO post 得到了准确的尺寸。
我正在尝试在我打算为 iOS 设备部署的本机反应应用程序上设置启动画面。
众所周知,有几种不同的屏幕可供选择(因像素密度、宽高比和其他因素而异),因此我必须提供一些图像。似乎至少有三种方法可以提供允许 iOS 决定在任何情况下使用哪个图像的映射; 据我了解,这些方法中的任何一个 本身就足够了:
- 将所有图片文件放在Xcode项目的根目录下,按照特定的约定命名(
Default.png
、Default@2x~ipad.png
、Default-568h@2x.png
等) - 在项目的 Info.plist 中定义一个
UILaunchImages
字典项,每个场景都有一个指向所需图像的字典条目 - 在资产目录中创建类型为 "LaunchImage" 的项目,将图像拖放到每个场景的占位符上,然后指向项目目标 "App Icons and Launch Images" 中的 LaunchImage 项目配置
我强烈倾向于使用第三种方法,这在很大程度上是因为就定义每个显示场景的识别特征而言,它需要的技术精度最低。但是当我在我的 iPhone5 上测试时它不起作用——初始屏幕是黑色的,而不是显示我的彩色图像。我在 LaunchImage 板上的每个位置都放置了一个图像,这表明 Xcode6 附带的 LaunchImage 骨架根本没有与 iPhone5 相对应的位置。那是不对的。 (是的,我的图像是 PNG。)
很多教程告诉我在资产目录中创建一个新的图像集(它有不同的骨架),但是 "App Icons and Launch Images" 配置只允许我选择 LaunchImages 项目。
有很多在线资源记录了前两种方法——即依赖文件系统约定,或在 Info.plist 中定义映射——但似乎没有真正解决资产目录方法.
有人能指出我正确的方向吗?
编辑:有趣的是,当我把我的@1x 图像放在 LaunchImage 板上的每个位置时,项目无法构建,因为 "there is no applicable content." 当我把我的@所有 Retina 点的 2x 图像,应用程序构建,但初始屏幕是黑色的。
这是否揭示了什么?
经过一些试验,结果是 phone 默默地拒绝了分配给该场景的图像,因为图像尺寸不正确。我提供的图像比适当的略大,显然 iOS 处理此问题的方式是显示黑色启动屏幕,而不发出任何有用的诊断信息。
我从 this SO post 得到了准确的尺寸。