首页 文章

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

提问于
浏览
60

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

我正在尝试为iOS 8和iPhone 6/6工作,但还没有提出一些有效的方法 . 以下是我尝试过的一些事情:

  • 遵循模式4 " screen launch image convention. I created Default-667h@2x.png and Default-736h@3x.png images. This did trick the simulator to run at proper iPhone 6/6+ resolution but when launching, the 4"使用屏幕启动图像,而不是我创建的新模式 .

  • 使用资产目录 - 我在LaunchImages资产中为iPhone 6和iPhone 6 Plus创建纵向启动图像,为iPhone 6 Plus创建横向图像 . iPhone 6 Plus可以工作,但iPhone 6只显示黑屏 . (无法在资产目录中创建iPhone 6横向启动图像)

  • 在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风景 .

11 回答

  • 4

    我所做的是将我的项目改为不使用资产目录来发布图像,并使用iOS7及更早版本的旧技术 . 这使得发布图像适用于iOS7及更早版本 .

    为了让它们也适用于iOS8,以便您可以获得正确的分辨率,并确认您的应用程序是为新的iPhone 6 /构建的,您还需要创建一个新的LaunchImage XIB并告诉Xcode使用它 .

    似乎发生的事情是在iOS8设备上启动应用程序使用新的XIB技术,并在iOS7或更早版本的设备上启动它使用您已经了解和喜爱的图像 .

    这对我来说似乎有效 . 这是丑陋的IMO,但它确实有效 .

    希望这可以帮助一些人 .

  • 1

    你只需添加iPhone6-Portrait@2x.png,然后它也将自己修复为Landscape . 我也是iPhone 6和iPhone 6 Plus的专用风景应用程序,它没有问题!

  • 14

    对于除plus之外的所有iPhone,没有针对仅横向应用的单独启动屏幕 . 您可以像Deepak描述的那样在plist中设置方向,然后将纵向启动屏幕设置为横向启动屏幕的旋转版本 .

    这就是它一直如此,唯一改变的是现在加上一个独立的,独特的景观发布屏幕 . 无论您的应用程序的起始方向如何,所有其他设备仍然只支持纵向启动屏幕 .

  • 1

    我找到了一种解决方法,使得仅在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>
    
  • 2

    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-Portrait~ipo.png可以防止6加号拾取它们,因为它们会覆盖3x图像 .

  • 61

    以下步骤对我有用:

    • 使用以下提名将图像添加到项目(根目录或资源文件夹)(我将其描述为肖像启动图像):Default.png(3.5英寸),Default-568h @ 2x.png(4英寸),默认-667h@2x.png(iPhone 6),默认736 @ 3x.png(iPhone 6plus) .

    • 转到常规选项卡上的目标设置,应用程序图标和启动图像 - >将启动图像源设置为不使用资产目录('Do not use asset catalogs') .

    • 从主图像资源中删除LaunchImage资产

    • 转到常规选项卡上的目标设置,应用程序图标和启动图像 - >设置启动图像源以使用资产目录

    • XCode 6将向您询问有关现有图像的图像资产迁移的信息 . 只需点击'Migrate'即可 .

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

  • 11

    For iPhone 6:

    750 x 1334(@ 2x)的肖像
    1334 x 750(@ 2x)景观

    For iPhone 6 Plus:

    1242 x 2208(@ 3x)为肖像
    2208 x 1242(@ 3x)景观

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

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

  • 11

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

    "Launch screen file" is empty

  • 75

    这是@AlexArgo的答案的后续内容,它扩展了它,以便仅支持风景,支持iOS 9的应用程序在iOS 9 iPhone上显示适当的启动图像 . 与该答案一样,不需要资产目录,故事板或xib .

    如果没有这些添加,我们看到的行为是在iOS 9 iPhone上启动我们的仅景观应用程序显示与iOS 8相同的图像,但图像顺时针旋转90度并通过拉伸到相反方向的尺寸而扭曲 .

    预安装iOS 9 iPhone发布屏幕:
    Pre-Fix iOS 9 iPhone Launch Screen

    该解决方案有两个部分:

    • 将以下iOS 9项添加到@ AlexArgo答案中的iOS 8项 Info.plistUILaunchImages 数组 before .

    • 添加新的启动图像在以下iOS 9项目中引用(例如 Default-iOS9-568h )到您的应用程序 . 新的发布图像是 actual "landscape" -orientation图像(宽度比它们高),不同于@AlexArgo的iOS 8项目所引用的图像,它们以风景图像开始,然后在添加到应用程序之前旋转到纵向 . 请注意,这两组图像必须保留在应用程序中,以便此解决方案可以同时在iOS 8和9上运行 .

    <key>UILaunchImages</key>
    <array>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>9.0</string>
            <key>UILaunchImageName</key>
            <string>Default-iOS9</string>
            <key>UILaunchImageOrientation</key>
            <string>Landscape</string>
            <key>UILaunchImageSize</key>
            <string>{320, 480}</string>
        </dict>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>9.0</string>
            <key>UILaunchImageName</key>
            <string>Default-iOS9-568h</string>
            <key>UILaunchImageOrientation</key>
            <string>Landscape</string>
            <key>UILaunchImageSize</key>
            <string>{320, 568}</string>
        </dict>
        <dict>
            <key>UILaunchImageMinimumOSVersion</key>
            <string>9.0</string>
            <key>UILaunchImageName</key>
            <string>Default-iOS9-667h</string>
            <key>UILaunchImageOrientation</key>
            <string>Landscape</string>
            <key>UILaunchImageSize</key>
            <string>{375, 667}</string>
        </dict>
        ...(pre-iOS 9 items)...
    </array>
    

    修复后的iOS 9 iPhone发布屏幕:
    enter image description here

  • -4

    要使用ipad(横向和纵向模式),您需要在info.plist中添加 UILaunchImages~ipad 键:

    <key>UILaunchImages~ipad</key>
        <array>
            <dict>
                <key>UILaunchImageMinimumOSVersion</key>
                <string>7.0</string>
                <key>UILaunchImageName</key>
                <string>Default-Landscape</string>
                <key>UILaunchImageOrientation</key>
                <string>Landscape</string>
                <key>UILaunchImageSize</key>
                <string>{768, 1024}</string>
            </dict>
            <dict>
                <key>UILaunchImageMinimumOSVersion</key>
                <string>7.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>7.0</string>
                <key>UILaunchImageName</key>
                <string>Default-Landscape</string>
                <key>UILaunchImageOrientation</key>
                <string>Landscape</string>
                <key>UILaunchImageSize</key>
                <string>{748, 1024}</string>
            </dict>
            <dict>
                <key>UILaunchImageMinimumOSVersion</key>
                <string>7.0</string>
                <key>UILaunchImageName</key>
                <string>Default-Portrait</string>
                <key>UILaunchImageOrientation</key>
                <string>Portrait</string>
                <key>UILaunchImageSize</key>
                <string>{768, 1004}</string>
            </dict>
        </array>
    
  • 0

    要以横向模式启动应用程序,请编辑Info.plist文件以使用适当的值(UIInterfaceOrientationLandscapeRight或UIInterfaceOrientationLandscapeLeft)添加UIInterfaceOrientation键,如下面的代码所示 . 这提示系统在启动时适当地设置状态栏的方向 .

    清单1:以横向模式启动应用程序

    <key>UIInterfaceOrientation</key>
    <string>UIInterfaceOrientationLandscapeRight</string>
    

    了解更多信息click here

相关问题