如何为iPhone 6/6 Plus仅景观应用创建启动图像?

Ale*_*rgo 60 iphone ios ios8 iphone-6

我有一个现有的横向应用程序,我正在尝试添加iPhone 6/iPhone 6 Plus支持.当我支持iOS 6/7时,我只使用默认命名的启动肖像图像,将风景图像旋转为纵向(即,对于4"屏幕,我创建了一个横向1136x640,然后旋转以创建640×1136启动图像.)

我正在尝试为iOS 8和iPhone 6/6+工作,但还没有找到有效的东西.以下是我尝试过的一些事情:

  1. 遵循4"屏幕启动图像约定的模式.我创建了Default-667h@2x.png和Default-736h@3x.png图像.这确实欺骗了模拟器以适当的iPhone 6/6 +分辨率运行但是在启动时,使用4"屏幕启动图像,而不是我创建的新图像.
  2. 使用资产目录 - 我在LaunchImages资产中为iPhone 6和iPhone 6 Plus创建纵向启动图像,为iPhone 6 Plus创建横向图像.iPhone 6 Plus可以工作,但iPhone 6只显示黑屏.(无法在资产目录中创建iPhone 6横向启动图像)
  3. 指定的Info.plist UILaunchImages阵列具有用于所有屏幕尺寸条目(见参考https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/ uid/TP40009252-SW28).我在这里得到了与资产目录类似的结果.我可以让iPhone 6 Plus风景有效,但不能用iPhone 6风景.

Ale*_*rgo 75

我找到了一种解决方法,使得仅在iOS 8 GM上使用横向启动图像.我最终在Info.plist中使用了UILaunchImages数组.诀窍是让图像显示不明确支持景观(iPhone 4/4S,iPhone 5/5S/5C,iPhone 6),您需要指定重复的条目.请参阅下面的示例.这适用于仅支持横向iPad的横向手机应用程序.iOS 7将回退到默认图像名称.

所有iPhone发布图像都需要像往常一样旋转到纵向,除了iPhone 6 Plus发布图像.它原生支持横向启动图像,因此您需要将其启动图像保留为横向.

以下是Info.plist的相关内容:

<key>UILaunchImages</key>
<array>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{320, 480}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{320, 480}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-568h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{320, 568}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-568h</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{320, 568}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-667h</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{375, 667}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-736h</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{414, 736}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-Portrait</string>
        <key>UILaunchImageOrientation</key>
        <string>Portrait</string>
        <key>UILaunchImageSize</key>
        <string>{768, 1024}</string>
    </dict>
    <dict>
        <key>UILaunchImageMinimumOSVersion</key>
        <string>8.0</string>
        <key>UILaunchImageName</key>
        <string>Default-Landscape</string>
        <key>UILaunchImageOrientation</key>
        <string>Landscape</string>
        <key>UILaunchImageSize</key>
        <string>{768, 1024}</string>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

  • 有人可能总结一下重要的部分吗?为什么这个plist工作,与正常工作有什么不同?我使用图像目录并且对这些内容一无所知,抱歉 (2认同)
  • 这样做的原因是因为相同图像大小的横向/纵向方向的重复条目.根本问题是[在此SO帖子中解释](http://stackoverflow.com/a/26275887/1534401). (2认同)

mal*_*hal 61

iPhone 6等的模式已经改变

iPhone 6(750x1334):

Default-375w-667h@2x~iphone.png

iPhone 6 Plus:(1242x2208)

Default-414w-736h@3x~iphone.png

Default-Landscape@3x.png(适用于风景)

注意:如果你支持的iPad,那么你必须重命名你的iPad默认图片追加〜ipad的比如:default-肖像〜ipad.png防止6+从采摘的,因为这些覆盖3倍的图像.


ing*_*ham 14

以下步骤对我有用:

  1. 使用以下提名将图像添加到项目(根目录或资源文件夹)(我将其描述为Portrait launchimages):Default.png(3.5英寸),Default-568h @ 2x.png(4英寸),默认 - 667h@2x.png(iPhone 6),默认736 @ 3x.png(iPhone 6plus).
  2. 转到常规选项卡上的目标设置,应用程序图标和启动图像 - >将启动图像源设置为不使用资产目录('不使用资产目录').
  3. 从主图像资源中删除LaunchImage资产
  4. 转到常规选项卡上的目标设置,应用程序图标和启动图像 - >将启动图像源设置为使用资产目录
  5. XCode 6将向您询问有关现有图像的图像资产迁移的信息.只需点击"迁移"即可.

它适用于iOS7,iOS8上的各种设备.注意:如果您检查新的LaunchImage资产,那么您可以看到它真的很奇怪.它似乎只包含一些没有iPhone6或iPhone 6plus分辨率图像的图像.


小智 11

对于iPhone 6:

750 x 1334(@ 2x)为肖像
1334 x 750(@ 2x)为风景

对于iPhone 6 Plus:

1242 x 2208(@ 3x)for portrait
2208 x 1242(@ 3x)for landscape

或者你可以通过这个链接,它可以帮助你

http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/

  • 我知道正确的图像尺寸是什么.问题是,如果您的应用只是风景,它将不会显示. (3认同)

Nad*_*eya 11

如果您仅使用Images.xassets"启动屏幕文件"应为空.它帮助了我.