28

我从可用的文档和我的测试中了解到的是

  1. iPhone 6 和 6 Plus 上的所有现有应用程序都在兼容模式下运行,这意味着 API(如 [UIScreen mainScreen].bounds)将在新 iPhone(6/6 Plus)中返回 320x568(iPhone 5/5s)并且所有 UI 都是由iOS缩放到正确的分辨率。

  2. 为了支持 iPhone 6/6Plus,我们需要为启动屏幕创建 xib(文件->新建->文件->用户界面->启动屏幕)并将 nib 文件设置为“启动屏幕文件”。

  3. 我们可以根据可用的大小类在启动屏幕 nib 文件中为启动屏幕设置不同的图像。[Any、regular 和 compact 的基本组合]

  4. 无法区分纵向 iPad 和横向 iPad(两者都是常规宽度常规高度)。也没有办法区分 iPhone 4/4s 和 iPhone 5/s。

有没有一种方法可以支持 iPhone 6/6 Plus 模式,并为 iPad 纵向和 iPad 横向提供不同的启动图像?

另请参阅此处的类似问题iOS 8 size classes for iPad Landscape

4

2 回答 2

34

您不必使用启动屏幕文件来使您的 App iPhone 6 / 6+ 分辨率兼容。相反,您可以选择 LaunchImage 资产作为启动图像源。

它可以在您的目标下的“应用程序图标和启动图像”中找到:

在此处输入图像描述

如果没有 LaunchImage 资源,只需转到您的 Images.xcassets,进行二次单击(右键单击)并选择“New Launch Image”:

在此处输入图像描述

结果是这样的:

在此处输入图像描述

现在只需拖放您想要支持的特定分辨率的图像,并将创建的 LaunchImage 资产设置为您的源。

希望能帮助到你

干杯

于 2014-09-22T20:35:12.033 回答
24

资产目录目前在上的 iPhone 上以横向模式工作。我得到了苹果支持的回复:

“有一个错误涉及资产目录中的启动图像和在 iPhone 上横向启动的应用程序。在幕后,资产目录编译器在最终 Info.plist 中生成相同的 UILaunchImages 键 [1]手动指定启动图像。在 UILaunchImages 键下指定的每个启动图像的子键之一是 UILaunchImageOrientation,它始终由资产目录编译器设置为 Portrait。这是有道理的,因为 iPhone 上的应用程序始终以纵向启动 [2]。但是,iOS 应用程序启动器决定,由于您的 UISupportedInterfaceOrientations 仅包含 UIInterfaceOrientationLandscapeLeft 和 UIInterfaceOrientationLandscapeRight,因此它只会在 UILaunchImages 键下查找横向启动图像,但它找不到。

由于无法强制资产目录编译器为 iPhone 启动图像LandscapeUILaunchImageOrientation子键指定,因此您应该像以前一样通过编辑应用程序的信息属性列表来继续指定启动图像。”

于 2014-10-09T10:17:27.103 回答