如何在Xcode 6.1中为所有类型的iPhone集成启动画面?

36

我需要创建一个可以在iPhone 4S、5、5S、6和6+上运行,部署目标为iOS 7.1的应用程序。我看到苹果推出了LauchScreens.xib用于创建启动屏幕(闪屏),还有一个图像资源,在其中我可以提供启动图像屏幕。参见下面的图片:

enter image description here

所以我的问题是如何在所有iPhone上使用闪屏?或者说,当我使用Xcode 6时,什么是标准的做法?

我一直在寻找答案并阅读博客和苹果的文档,但我没有找到任何东西。每个人都在唱自己的歌,但不是答案。


4
那为什么会有LaunchScreens.xib呢?如果我可以使用imageAssets,那它的作用是什么?这让我感到困惑。 - Developer
1
另外,iPhone 6和iPhone 6+的启动画面应该遵循什么命名规范?如果有相关文档,请分享链接。 - Developer
没有 LaunchScreens.xib 文件。你创建了吗?启动画面不使用 XIB / Storyboard。 - Raptor
4
使用XCode 6.1创建新项目,然后检查!它默认存在。 - Developer
我正在使用6.1 Beta版本! - Developer
显示剩余2条评论
4个回答

68
在所有设备的启动画面中,需要为每个设备大小(高清晰度和非高清晰度)制作启动画面图像。在Xcode6中完成此操作的最佳方法是使用目标-->常规中的资产目录,如下所示的屏幕截图: enter image description here 当你点击 launchImage 旁边的右箭头时(->),你可以看到以下窗口: enter image description here 当前窗口为空,因为从右侧没有选择任何目标,所以如果您的部署目标是6.0,则需要设置如下屏幕截图所示的勾选标记,这样您就可以看到所有的图像需求框: enter image description here 请注意,当您在目录中添加错误尺寸的图像时,顶部右侧会出现警告,当您点击该警告时,您可以获得实际的尺寸。请参考以下屏幕截图: enter image description here 从警告日志中,您可以知道哪个尺寸的图像是哪个启动画面所需要的。 另一种方式 无需使用资产目录,也无需使用 LaunchScreen.xib ,您仍然可以使用旧的方式:
创建以下尺寸的启动画面图像:
Default-568h.png                   320 x 568      
Default-568h@2x.png                640 x 1136
Default-667h@2x.png                750 x 1334
Default-736h@3x.png                1242 x 2208
Default.png                        320 x 480
Default@2x.png                     640 x 960

现在在 plist 文件中,您需要添加以下数据:

  • 通过点击 (+) 添加一行,它称为 UILaunchImages

enter image description here

  • 然后您需要按照以下方式填写此行

enter image description here

就这样,不需要做任何其他事情,希望这个答案也能对其他人有所帮助。


感谢您的精彩回答。在资产目录中设置启动画面图像时,命名约定是否重要?还是可以随意命名? - Apple_Magic
1
我并没有考虑,但我使用了通常使用的相同名称。 - Nitin Gohel
谢谢这个。我没有意识到你可以启用/禁用启动画面大小。还有“评估目录”。嘿。 - Mr_Chimp
非常感谢您的出色回答,“其他方式”在Xcode 7.0.1下完美地适用于iOS 9(iPhone 6s和6s Plus)。 - Mr. T
谢谢。非常棒的答案! - iGatiTech

36
在Xcode 6.4中(截至2015年7月6日),针对iOS 7.1+,我使用启动图像而不是启动屏幕文件(.xib)。首先,从“Launch Screen File”下拉菜单中删除条目。如果它指向.xib,则该.xib将覆盖启动图像源。在Target/General/App Icons and Launch Images中进行设置。其次,在Images.xcassets的中间窗格底部选择“+”,创建新的启动图像(而不是新的Image Set)。然后,在新的启动图像中,有20个方块,每个方块都要求.png文件。现在,您需要创建20个正确大小的.png文件。我使用Pixelmator,并将每个文件导出为.png。而什么是“正确的大小”?请参见下面的表格:“启动图像正确大小”。'*无状态栏'

30

我已经在玩Xcode 6一段时间了,我发现 LaunchScreen.xib 仅适用于 iOS 8,因此如果您想为所有设备提供启动图像,则可以按以下方式操作。

对于使用 iOS 7 的设备,您可以像往常一样使用 images.xcassets,就像我们以前所做的一样。 enter image description here

对于 iOS 8 设备,有两种方法:

  1. 您可以简单地使用 LaunchScreen.xibenter image description here 此图像显示了 Xcode 默认为 iOS 8 启动屏幕文件设置 LaunchScreen.xib

    1. 如果您不想将 LaunchScreen.xib 设置为启动屏幕文件,并希望在 iOS 7 设备上显示某些启动图像,则只需删除启动屏幕文件名称并将其设置为空白(如下图),然后从 Xcode 中删除 LaunchScreen.xib 文件。 在这种情况下,iOS 8 设备也会从 images.xcassets 的启动图像中获取启动图像。 enter image description here

4
从iOS 8开始,做启动画面的新方式是定义一个LaunchScreen.xib文件。在XCode 6中,这也作为新的资源文件类型提供。
这个新的XIB将使用自动布局和新的尺寸类来确定您希望如何布置启动屏幕。
如果您想支持旧设备,它的向后兼容性并不清晰,我认为它不会工作。
您可以在XCode项目中的目标属性第一屏设置launch.xib。
如果您想使用旧方法,仍然可以定义用作启动图像的PNG文件,这仍然被完全支持。从我看到的情况来看,如果您想支持旧的iOS版本,则仍然只能这样做。
请注意,如果您想支持iPhone 6/6 Plus的新分辨率,则必须定义启动xib或将正确大小的PNG文件放入资产目录中,否则您将获得模糊的自动缩放UI,就像旧应用程序在兼容性模式下一样。

这是我的问题。如果我使用图像目录作为启动图像,那么LaunchScreen.xib该怎么办? - Developer
那么Dhiraj!如果我们已经有了图像目录,为什么苹果还提供了LaunchScreen.xib?有任何想法或参考资料吗? - Developer
标准布局,图像选择规则适用于AutoLayout和Size类。请参考Interface Builder中有关自动布局的WWDC视频以了解如何执行此操作。 - Dhiraj Gupta
Dhiraj Gupta,您能分享一下那个视频的链接吗?我没有找到它。 - Developer
我想告诉你,我正在使用Size Classes和Constraints! - Developer
显示剩余10条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接