2017-04-04 64 views
1

我希望我的应用具有不同的启动图像,当以纵向对比纵向对比横向对比横向对比横向对齐进行启动时。那可能吗?我可以为四个方向分别启动图像吗?

我愿意用任何如下:

  • 启动故事情节
  • 启动映像在资产目录
  • 启动图像作为普通的PNG文件

要知道为什么这是必要的,退出Camera.app,然后在横向左侧和方向上启动它。请注意启动图像,具体来说,快门按钮在左右两个方向都位于主屏幕按钮附近。

这是可能的,只有当它有单独的启动图像/故事板横向左右。如果它只有一个,则快门按钮将以一个方向出现在主屏幕按钮旁边,并在另一个方向出现在扬声器旁边(屏幕顶部)。

Camera.app似乎有四个不同的启动图像。我怎么也有四个呢?


编辑: 基于公认的答案,我尝试添加下列启动图像(无需添加在Info.plist中的任何东西):

enter image description here

在我的iPhone 7另外,它的工作原理正确地在肖像,左景观和右景观。不是当手机倒置时,在这种情况下会显示肖像启动图像,然后显示实际UI显示时看起来像180度旋转的图像。为了证实这一点,我在人像颠倒的发射图像中画了一个大红色的矩形,当我运行应用程序时,我没有看到这个红色的矩形,所以我可以确认图像颠倒发射图像文件isn'根本不用。你知道为什么吗?你看到文件名有什么问题吗?


编辑2:我添加了以下内容的Info.plist:

<key>UILaunchImages</key> 
<array> 
    <!-- 5.5-inch: --> 
    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{414, 736}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>Portrait</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{414, 736}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>PortraitUpsideDown</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{414, 736}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>LandscapeLeft</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{414, 736}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>LandscapeRight</string> 
    </dict> 

    <!-- 4.7-inch: --> 
    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{375, 667}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>Portrait</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{375, 667}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>PortraitUpsideDown</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{375, 667}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>LandscapeLeft</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{375, 667}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>LandscapeRight</string> 
    </dict> 

    <!-- 4-inch: --> 
    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{320, 568}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>Portrait</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{320, 568}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>PortraitUpsideDown</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{320, 568}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>LandscapeLeft</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    <key>UILaunchImageSize</key> 
    <string>{320, 568}</string> 
    <key>UILaunchImageOrientation</key> 
    <string>LandscapeRight</string> 
    </dict> 

    <!-- 3.5-inch: --> 
    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    </dict> 

    <dict> 
    <key>UILaunchImageName</key> 
    <string>Default</string> 
    <key>UILaunchImageMinimumOSVersion</key> 
    <string>7.0</string> 
    </dict> 

</array> 

这使事情变得更糟 - 我看到当手机在横向使用伸出来的肖像启动图像。

请注意,所有的UILaunchImageName键都设置为Default,依靠iOS来消除它们的歧义。我也尝试将PNG重命名为[email protected],并将UILaunchImageName设置为Default-portrait-颠倒。它没有任何区别。

+0

您是否为iPhone启用了颠倒的方向?它在iPhone的Info.plist中被默认禁用。 –

+0

我已启用它。正如我所说的,实际的用户界面不会以纵向倒影的方式显示。只有启动图像没有。 –

+0

除了尝试使用UILaunchImage键代替外,我没有任何其他建议。 –

回答

2

我相信你可以为每个方向指定一个单独的启动图像。 iOS(自7.0版以来)支持Info.plist密钥UILaunchImages。该值是一个字典数组。每个字典描述一个启动图像。字典可以包含一个键UILaunchImageOrientation,其值可以是四个方向中的任何一个。

有关详细信息,请参阅Information Property List Key Reference

+0

资产目录有可能吗?我目前使用一个,并且找不到一种方法来执行此操作。 –

+0

我没有看到使用资产目录的任何文档或Info.plist设置,但您并不需要仅仅因为有一个图像就将所有图像放入目录。 –

+0

谢谢。就我而言,消除资产目录并只有原始图像更简单。你是否知道所有后缀图像可以像@ 2x这样的引用,以及哪些后缀在文件名中是必需的,并且在plist条目中是必需的?许多堆栈溢出问题已断开与Apple文档的链接,这些文档在资产目录和启动故事板引入时已被删除。 –

相关问题