我有一个现有的横向应用程序,我正在尝试添加iPhone 6 / iPhone 6 Plus支持。当我支持iOS 6/7时,我只使用了默认命名的启动肖像图像,并将风景图像旋转为纵向(即,对于4“屏幕,我创建了一个横向1136x640,然后旋转以创建640×1136启动图像。)
我正在尝试为iOS 8和iPhone 6 / 6+工作,并且还没有找到有效的东西。以下是我尝试过的一些事情:
答案 0 :(得分: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>
答案 1 :(得分: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-Portrait~ipo.png可以防止6加号选择那些,因为它们会覆盖3x图像。
答案 2 :(得分:14)
以下步骤对我有用:
它适用于iOS7,iOS8上的各种设备。 注意: 如果您检查新的LaunchImage资产,那么您可以看到它真的很奇怪。它似乎只包含一些没有iPhone6或iPhone 6plus分辨率图像的图像。
答案 3 :(得分:11)
适用于iPhone 6:
750 x 1334(@ 2x)为肖像
1334 x 750(@ 2x)景观
适用于iPhone 6 Plus:
1242 x 2208(@ 3x)为肖像
2208 x 1242(@ 3x)for landscape
或者你可以通过这个链接来帮助你
http://matthewpalmer.net/blog/2014/09/10/iphone-6-plus-launch-image-adaptive-mode/
答案 4 :(得分:11)
如果您仅使用Images.xassets&#34;启动屏幕文件&#34;应该是空的。 它帮助了我。
答案 5 :(得分:4)
这是@AlexArgo的答案的后续内容,它扩展了它,以便仅支持风景,支持iOS 9的应用程序在iOS 9 iPhone上显示适当的启动图像。与该答案一样,不需要资产目录,故事板或xib。
如果没有这些添加,我们看到的行为是在iOS 9 iPhone上启动我们的仅景观应用程序显示与iOS 8相同的图像,但是图像顺时针旋转90度并且被拉伸到相反的方向而扭曲 - 方向的维度。
此解决方案有两个部分:
Info.plist
UILaunchImages
阵列之前来自@ AlexArgo的答案中的iOS 8项目。将以下iOS 9项目中引用的新发布图片(例如Default-iOS9-568h
)添加到您的应用中。新的发布图像是实际&#34;横向&#34; - 方向图像(比它们更高),与@ 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>
答案 6 :(得分:2)
要使用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>
答案 7 :(得分:1)
对于除plus以外的所有iPhone,没有针对仅横向应用的单独启动屏幕。您可以像Deepak描述的那样在plist中设置方向,然后将 portrait 启动屏幕设置为横向启动屏幕的旋转版本。
这就是它一直如此,唯一改变的是现在加上一个独立的,独特的景观启动画面。所有其他设备仍然只支持纵向启动屏幕,无论您的应用程序的起始方向如何。
答案 8 :(得分:1)
我所做的是将我的项目改为不使用资产目录来发布图像,并使用iOS7及更早版本的旧技术。这使得发布图像适用于iOS7及更早版本。
为了让它们也适用于iOS8,以便您可以获得正确的分辨率,并确认您的应用程序是为新的iPhone 6 / +构建的,您还需要创建一个新的LaunchImage XIB并告诉Xcode使用它
似乎发生的事情是在iOS8设备上启动应用程序使用新的XIB技术,并在iOS7或更早版本的设备上启动它会使用您已经了解和喜爱的图像。
这对我来说似乎有效。这是丑陋的IMO,但它确实有效。
希望这可以帮助一些人。
答案 9 :(得分:0)
你只需添加iPhone6-Portrait@2x.png,然后它也将自己修复为Landscape。我还推出了适用于iPhone 6和iPhone 6 Plus的仅限风景的应用程序,它可以毫无问题地运行!
答案 10 :(得分:-4)
要以横向模式启动应用程序,请编辑Info.plist文件,以使用适当的值(UIInterfaceOrientationLandscapeRight或UIInterfaceOrientationLandscapeLeft)添加UIInterfaceOrientation键,如下面的代码所示。这提示系统在启动时适当地设置状态栏的方向。
清单1:以横向模式启动应用程序
<key>UIInterfaceOrientation</key>
<string>UIInterfaceOrientationLandscapeRight</string>
了解更多信息click here