23

当谈到启动屏幕时,我找不到一种统一的方式来模仿 iOS6 和 iOS7 上的应用程序外观(同时支持两者)。如果我们有工具栏菜单,我们是否被迫制作徽标或类似内容的常规闪屏,或者你们有什么好主意如何解决它?

4

6 回答 6

73

简短的回答

在 iOS 7 中,应用程序可以根据运行的 iOS 版本使用不同的启动图像。要提供不同的启动图像,请将UILaunchImages键添加到 Info.plist 文件并使用字典来描述每个启动图像。

背景

它使用以下键:

UILaunchImageName - 一个包含 PNG 图像文件名称的字符串。图像文件必须位于应用程序包的顶层。您为此键指定的名称不应包含文件扩展名,也不应包含@2x、-568h、~iphone 或~ipad 等修饰符。

在磁盘上,您的图像文件名仍可能包含@2x、-568h、~iphone 或~ipad 修饰符,尽管它们不是必需的。在选择要加载的文件时,系统会自动考虑此类修饰符。

UILaunchImageMinimumOSVersion - 对于 iOS7,这应该是一个字符串“7.0”。

UILaunchImageOrientation – 包含以下之一的字符串:Portrait、PortraitUpsideDown、Landscape、LandscapeLeft、LandscapeRight。

UILaunchImageSize –指定宽度和高度的字符串,例如:“{320, 480}”。您必须指定纵向设备的宽度和高度。换句话说,针对同一设备的纵向和横向图像将具有相同的宽度和高度。

如果此键存在,iOS 7 将专门使用它来获取启动图像。

但是:我发现坚持 iOS7 的命名约定也有很大帮助!

iOS 7.0 及更高版本支持此密钥。

好的——那么现在呢?

因为我已经有了 iOS6 的启动图像和所有特定的命名约定。我选择将它们全部复制并在名称前加上“iOS7-”,以限制我自己对所有不同尺寸和名称的混淆。制作前缀应该会派上用场,因为大多数图像会立即正确加载。

文件名:我已经为 iOS6 准备了这些文件名,我还列出了需要的文件大小:

  • 默认.png(320x480)
  • 默认@2x.png(640x960)
  • 默认@2x~ipad.png(2048x1496)
  • 默认~ipad.png(768x1004)
  • 默认1024x768.png(1024x768)
  • 默认1024x768@2x.png(2048x1536)
  • 默认-568h@2x.png(640x1136)
  • 默认768x1024.png(768x1024)
  • 默认768x1024@2x.png(1536x2048)
  • 默认-横向~ipad.png(1024x748)
  • Default-Portrait@2x~ipad.png(1536x2048)

所以我为iOS7(相同大小)制作了所有这些文件名的副本,并在它们前面加上“iOS7-”:

  • iOS7-Default.png
  • iOS7-Default@2x.png
  • ...

在 XCode 中

现在在 PLIST 中创建您的条目。转到 your-name-of-application.plist。在空白区域,右键单击并选择“添加行”。确保它成为 .plist 中某些其他信息的顶级项目而不是子项目。

写: UILaunchImages

右键单击此 UILaunchImages 并选择值类型“Array”。

使用下面的插图作为文本的指南以及完成后的外观:

在此处输入图像描述

如果你打开这个数组,让左边的小三角形指向下方,第一次它是空的,但如果你在打开时选择“添加行”,它将创建一个子行。现在就这样做:

右键单击 UILaunchImages 并选择“添加行”。右键单击此新行(第 0 项)并选择值类型“Dict”</p>

继续使用三角形指示器打开此项目,然后右键单击并“添加行”</p>

您将命名此项UILaunchImageMinimumOSVersion并将值类型设置为“字符串”,并将字符串设置为“7.0”</p>

现在以下都是字符串,应该与 UILaunchImageMinimumOSVersion 项处于同一级别。在同一个字典(字典)中。只需为每个选择“添加行”即可创建这些:

UILaunchImageName– iOS7-launch-image 的基本名称。就我而言,这是“iOS7-Default”</p>

UILaunchImageOrientation- 示例:肖像

UILaunchImageSize- 基本 iOS7-Default.png 的大小:“{320, 480}”。该程序将找到所有具有基本名称排列的文件。请记住选择没有 ipad/iphone/portrait/landscape 或 .png 规范的文件的基本名称。

笔记:

在第一次在所有可用插槽中添加 iOS6 图像之后,Xcode 已经在 .plist 中为我制作了以下项目 :-)

UILaunchImageFile~ipad … = ”Default” – 所以这没问题

UILaunchImages~ipad ... 有两个项目需要更新到 iOS7 版本,因为它们现在错误地持有 iOS6 版本。那些我命名为 Default1024x768 和 Default768x1024 现在我只是在每个名称前加上“iOS7-”前缀就完成了。

它如何寻找那些想要直接编辑 plist 的示例:

<key>UILaunchImages</key>
  <array>
    <dict>
      <key>UILaunchImageMinimumOSVersion</key>
      <string>7.0</string>
      <key>UILaunchImageName</key>
      <string>iOS7-Default </string>
      <key>UILaunchImageOrientation</key>
      <string>Portrait</string>
      <key>UILaunchImageSize</key>
      <string>{320, 480}</string>
    </dict>
  </array>

[由 jd 编辑:“UILaunchImages”的固定拼写]

于 2013-09-27T09:45:45.920 回答
8

在项目浏览器中突出显示项目,选择“General”,向下滚动到“App Icons”,点击“Use Asset Catalog”,然后选择“Migrate”。您现有的图标和启动屏幕将自动迁移到资产目录中。然后,您可以选择目录以添加更多图像。

要添加新图像,您只需从 Finder 拖放到每种图像类型的方块中。

(注意:目录编辑器莫名其妙地使用了不可滚动的宽格式,如果您的屏幕不够宽,您可能会丢失右侧的内容。)

于 2014-01-24T22:51:40.737 回答
5

您还可以使用 Xcode 5 中的新图像目录功能来管理多个版本的启动图像。

于 2013-10-13T10:49:13.590 回答
0

使用 images.xcassets 存储库时请注意,它不允许您本地化启动画面。

我目前正在尝试获取我们应用程序的法语和英语版本。

WWW> 如果您需要本地化启动画面,这种“plist”方法会起作用吗?

于 2014-02-25T10:25:24.513 回答
0

现在您可以直接在 images.xcassets 中添加应用程序图标和启动图像,单击 + 按钮为 iphone5 和 iOS 5、6、7、iphone4、iPad 添加相应的图像集。现在不需要像 default.png,default@2x.png 这样设置图像名称

于 2014-01-09T07:49:17.330 回答
0

我为 iOS 7 开发的旧应用程序也遇到了同样的问题。它在 Xcode 6 中存档和上传很好,但在 Xcode 7 中返回“二进制文件未针对 iPhone5 优化”错误。在尝试了无数其他解决方案后,我只有通过删除对任何启动映像的所有引用(因为我使用的是通用 .xib)并将部署目标从 7.0 设置为 8.0 才能成功

于 2015-10-31T08:28:31.340 回答