当谈到启动屏幕时,我找不到一种统一的方式来模仿 iOS6 和 iOS7 上的应用程序外观(同时支持两者)。如果我们有工具栏菜单,我们是否被迫制作徽标或类似内容的常规闪屏,或者你们有什么好主意如何解决它?
6 回答
简短的回答
在 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”的固定拼写]
在项目浏览器中突出显示项目,选择“General”,向下滚动到“App Icons”,点击“Use Asset Catalog”,然后选择“Migrate”。您现有的图标和启动屏幕将自动迁移到资产目录中。然后,您可以选择目录以添加更多图像。
要添加新图像,您只需从 Finder 拖放到每种图像类型的方块中。
(注意:目录编辑器莫名其妙地使用了不可滚动的宽格式,如果您的屏幕不够宽,您可能会丢失右侧的内容。)
您还可以使用 Xcode 5 中的新图像目录功能来管理多个版本的启动图像。
使用 images.xcassets 存储库时请注意,它不允许您本地化启动画面。
我目前正在尝试获取我们应用程序的法语和英语版本。
WWW> 如果您需要本地化启动画面,这种“plist”方法会起作用吗?
现在您可以直接在 images.xcassets 中添加应用程序图标和启动图像,单击 + 按钮为 iphone5 和 iOS 5、6、7、iphone4、iPad 添加相应的图像集。现在不需要像 default.png,default@2x.png 这样设置图像名称
我为 iOS 7 开发的旧应用程序也遇到了同样的问题。它在 Xcode 6 中存档和上传很好,但在 Xcode 7 中返回“二进制文件未针对 iPhone5 优化”错误。在尝试了无数其他解决方案后,我只有通过删除对任何启动映像的所有引用(因为我使用的是通用 .xib)并将部署目标从 7.0 设置为 8.0 才能成功