支持iOS6和iOS7的启动屏幕 - 强制启动屏幕

FBL*_*FBL 23 splash-screen ios7

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

小智 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提供了这些文件名,我还列出了有需要的人的文件大小:

  • 为Default.png (320x480)
  • Default@2x.png (640x960)
  • Default@2x~ipad.png (2048x1496)
  • 默认〜ipad.png (768x1004)
  • Default1024x768.png (1024x768)
  • Default1024x768@2x.png (2048x1536)
  • Default-568h@2x.png (640x1136)
  • Default768x1024.png (768x1024)
  • Default768x1024@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"

使用三角形指示器继续打开此项目,然后右键单击并"添加行"

您将命名此项UILaunchImageMinimumOSVersion并将值类型设置为"string",将字符串设置为"7.0"

现在以下是所有字符串,并且应该与UILaunchImageMinimumOSVersion项目处于同一级别.在同一个词典(字典).只需为每个选择"添加行"即可创建这些:

UILaunchImageName - iOS7-launch-image的基本名称.就我而言,这是"iOS7-Default"

UILaunchImageOrientation - 例子:肖像

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

注意:

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

UILaunchImageFile~ipad ... ="默认" - 所以这没关系

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>
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢你非常详细的答案. (2认同)

Hot*_*cks 8

在项目浏览器中突出显示项目,选择"常规",向下滚动到"应用程序图标",单击"使用资产目录",然后选择"迁移".您现有的图标和初始屏幕将自动迁移到资产目录中.然后,您可以选择目录以添加更多图像.

要添加新图像,只需从Finder拖动并放入每个图像类型的正方形.

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

  • @ConfusedDeer - 是的,似乎许多Apple文档的目的是模糊和混淆. (3认同)

Ste*_*ald 5

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

  • 没关系 - 想通了.在项目浏览器中突出显示项目,选择"常规",向下滚动到"应用程序图标",单击"使用资产目录",然后选择"迁移".这一切都是自动完成的. (2认同)