支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像
Posted
技术标签:
【中文标题】支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像【英文标题】:Supporting iPhone 6 and iPhone 6+ with different launch/splash screen image for iPad Portrait and Landscape orientations 【发布时间】:2014-11-11 06:16:33 【问题描述】:我从可用文档和测试中了解到的是
iPhone 6 和 6 Plus 上的所有现有应用程序都在兼容模式下运行, 这意味着 API(如 [UIScreen mainScreen].bounds)将 仍在新 iPhone (6/6 Plus) 中返回 320x568 (iPhone 5/5s) 和 ios 将所有 UI 缩放到正确的分辨率。
要支持 iPhone 6/6Plus,我们需要为 Launch Screen 创建 xib (File->New->File->UserInterace->Launch Screen) 并设置 nib 文件 作为“启动屏幕文件”。
我们可以在启动屏幕 nib 文件中为启动屏幕设置不同的图像 关于可用的尺寸类。 [基本上任何组合,常规 和紧凑]
无法区分 iPad 纵向和 iPad 在横向方向(两者都是常规宽度常规高度)。 也没有办法区分 iPhone 4/4s 和 iPhone 5/s。
有没有一种方法可以支持 iPhone 6/6 Plus 模式,并为 iPad 纵向和 iPad 横向提供不同的启动图像?
在这里也可以看到类似的问题iOS 8 size classes for iPad landscape
【问题讨论】:
如果您使用@3x 命名 iPhone 6 文件,我的理解是它使用了适用于您设备的最佳分辨率。 我的项目中添加了名称为“LaunchImage-800-Portrait-736h@3x”的启动屏幕,但该应用程序在 iPhone 6 Plus 中仍以兼容模式运行。 从此处接受的答案中更好地使用方法 - ***.com/questions/25926661/… 【参考方案1】:您不必使用启动屏幕文件来使您的应用程序与 iPhone 6 / 6+ 分辨率兼容。相反,您可以选择 LaunchImage 资产作为您的启动图像源。
可以在 Targets 下的“App Icons and Launch Images”中找到:
如果没有 LaunchImage 资源,只需转到您的 Images.xcassets,进行二次单击(右键单击)并选择“新启动图像”:
结果是这样的:
现在只需拖放您想要支持的特定分辨率的图像,并将创建的 LaunchImage 资源设置为您的源。
希望对你有帮助
干杯
【讨论】:
我已经这样做了,但我的应用仍然在 iPhone 6 plus 的兼容模式下运行 好吧,我只是有能力在 iPhone 6 上测试它,而这就是我支持新分辨率所要做的一切。您是否还更新了您的应用图标以支持 @3x? @HorseT,这是一个很好的提示,您实际上不需要启动屏幕文件。谢谢你。 注意:如果你保留launchscreen.xib,这个在assets中的launchimage将在ios 8+设备中被忽略。【参考方案2】:资产目录目前在 iPhone ios8 上以横向模式工作。我收到了苹果支持的回复:
“存在一个涉及资产目录和应用程序中的启动图像的错误 在 iPhone 上横向启动。在幕后,资产 目录编译器在 您在指定时添加的最终 Info.plist 手动启动图像。每个启动图像的子键之一 在 UILaunchImages 键下指定的是 UILaunchImageOrientation 资产目录编译器始终将其设置为 Portrait。这 有道理,因为 iPhone 上的应用程序总是纵向启动 方向[2]。但是,iOS 应用程序启动器决定,因为 您的 UISupportedInterfaceOrientations 仅包含 UIInterfaceOrientationLandscapeLeft 和 UIInterfaceOrientationLandscapeRight,它只会寻找风景 在 UILaunchImages 键下启动图像,但没有找到。
由于没有办法强制资产目录编译器指定
Landscape
代表 iPhone 的UILaunchImageOrientation
子键 启动图像,您应该继续指定您的启动图像 像以前一样为您的应用编辑信息属性列表。”
【讨论】:
是否有任何关于何时修复已知错误的信息? 我一直在无休止地寻找以了解这个问题。这是我见过的最有用的信息。它解释了为什么每个人都建议的 plist hack 是安全的以及它为什么有效。以上是关于支持 iPhone 6 和 iPhone 6+,针对 iPad 纵向和横向方向具有不同的启动/启动屏幕图像的主要内容,如果未能解决你的问题,请参考以下文章
做接口以支持 iPhone 4、5、6、6+ 的最佳方法是啥?
是否可以支持 iPhone 6 屏幕,但不支持 iPhone 6 Plus?
新 iPhone 6 和 6+ 的图像分辨率,是不是添加了 @3x 支持?
iPhone 6 / 6 Plus 模拟器是不是支持更改显示缩放模式?