iOS通用应用程序iPad启动图像未被使用

15

我正在按照iOS编程指南中的“为不同方向提供启动图像”进行操作,但似乎无法让我的面向iPad的启动图像正常工作。如果我理解文档没错,那么当我在iPad模拟器中启动应用程序时,“Default〜ipad.png”应该被用作启动图像,但实际上它使用的是我的“Default.png”。

如果我告诉模拟器以iPhone4运行,则会正确使用我的“Default@2x.png”。但这让我更加困惑,因为iPad版本为什么不能正常工作呢?

是否有人知道如何使面向iPad的启动图像正常工作?


刚遇到了这个问题。重建了无数次应用程序,确保它是正确的大小(768x1004),确认Default~ipad.png在包中-不知道为什么这不按照文档工作。 - Shaggy Frog
尝试在您的Info.plist中定义iPad启动图像,就像下面的答案一样。您可能需要使用除“Default”以外的其他内容作为基本名称。 - Cruinh
1
这个问题在这篇文章中解释得非常清楚:https://dev59.com/cXE85IYBdhLWcg3wvGKm - Jose Muanis
4个回答

14

有几种方法可以实现。我更喜欢的方法是从“iOS应用程序编程指南”中获取。

为不同方向提供启动图像:

  1. 在Info.plist中,将UILaunchImageFile设置为基本名称:“MyAppName.png”

  2. 在您的资源包中,使用此命名结构创建文件:

<basename><orientation_modifier><scale_modifier><device_modifier>.png

示例:我为iPad、iPhone、1x和2x使用了所有这些名称:

MyAppName-Portrait~ipad.png
MyAppName-Landscape~ipad.png

MyAppName-Portrait@2x~ipad.png
MyAppName-Landscape@2x~ipad.png

MyAppName-Portrait~iphone.png
MyAppName-Landscape~iphone.png

MyAppName-Portrait@2x~iphone.png
MyAppName-Landscape@2x~iphone.png

// iphone 5
MyAppName-Portrait-568h@2x~iphone.png
MyAppName-Landscape-568h@2x~iphone.png

注意: @2x放在正确的位置,这是唯一一种情况下它不会位于文件名的末尾

当您有多个构建目标时且不想使用Default.png文件名时,此方法特别有效


1
iPhone 5如何融入其中? - zekel
这是一个提示,帮助我正确获取文件名并被Xcode接受。从项目中删除您的图像,然后按照说明添加MyAppName info.plist条目。然后将您的图像拖到Xcode 4目标摘要图像放置点上。它们将被复制到您的项目文件夹的根目录中,并使用您的MyAppName命名方案而不是Default.png文件名。如果您不想让它们在那里,您可以从项目中删除引用,将它们移动到图像文件夹中,然后Xcode会捕捉到它们。 - zekel
iPhone 5上的工作原理目前没有记录。一旦它出现在文档中,我会更新我的答案。 - bentford
1
在 iPhone 5 上,您可以使用后缀-568h,例如 Default-568h@2x.png。您必须在应用程序中拥有一个具有该确切名称的文件,才能支持 iPhone 5(如果没有,则会收到 Xcode 警告),但似乎可以指定启动图像称为“foo.jpg”,然后有一个 foo-568h@2x.jpg,它将优先使用而不是 Default-568h@2x.png - Nick Lockwood
这真的帮了我 - 谢谢。不过,我确实也需要将启动图像>源(在目标>常规下)切换为“使用资产目录”(默认设置为“LaunchImage”,它会捕获iPad启动图像但不会捕获iPhone的)。不确定这是iOS7特定的怪癖,因为这是我的第一个应用程序... - MassivePenguin

9

我成功地通过在应用程序的Info.plist中提供iPad专用密钥来使其工作,而不是使用文档建议的iPad专用文件名。

我的iPad启动图像是"iPadDefault.png",我在我的Info.plist中添加了以下键/值

<key>UILaunchImageFile~ipad</key>
<string>iPadDefault</string>

3

由于您正在制作通用应用程序,命名约定会改变!以下是指南中的引用:

为 iPhone 和 iPad 都包含启动图像。iPhone 启动图像仍将被命名为 Default.png 和 Default@2x.png。将您的 iPad 纵向启动图像命名为 Default-Portrait.png(不要使用 Default.png 作为 iPad 纵向启动图像)。

这意味着没有纵向/横向等之分......您只需按此方式重新命名文件即可:

iPhone(iPod): Default.png and Default@2x.png
iPad: Default-Portrait.png and Default-Portrait@2x.png (the @2x version is for the new iPad !)

我之前遇到了同样的问题,这个方法解决了我的问题。虽然我不确定左右方向在通用二进制文件中是否可用,但这个方法对我有效!


-1
我最终通过以下方法在 iPad 上使横向模式正常工作,在 iPhone 4 上使用高清横向模式,在其余设备上使用低清横向模式(针对两种手机都只使用一个横向模式,在 plist 中不使用其他方向或启动属性)。
    <key>UILaunchImageFile</key>
<string>Default</string>
<key>UISupportedInterfaceOrientations</key>
<array>
    <string>UIInterfaceOrientationLandscapeRight</string>
    <string>UIInterfaceOrientationLandscapeLeft</string>
</array>

我的图片如下所示(请注意,手机上的两张图片都顺时针旋转了90度,但在手机上显示为横向): Default-Landscape.png(1024 x 748)横向方向。这个分辨率比iPad的分辨率少20个像素。 Default.png(320 x 480)纵向方向(当我在Finder中查看它时,它看起来顺时针旋转了90度)。 Default@2x.png(640 x 960)与上述图片相同的方向。

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