带有LandscapeLeft和LandscapeRight方向的iPhone启动画面

时间:2016-12-27 07:36:56

标签: ios iphone splash

我正在尝试使用UILaunchImagesLandScapeLeftLandScapeRight方向提供不同的图片,但只有其中一个被提取,有人可以提供UILaunchImagesLandScapeLeft方向的LandScapeRight的确切命名惯例,我希望为iPhone,iOS8及更高版本提供这些图像。

正是我正在寻找具有iOS8以上正确命名约定的启动图像的确切大小,有较旧的帖子确实提供了UILaunchImages的详细信息,但我在{{1}中看到了已针对iOS的最新更新更新了图片大小

我希望用UILaunchImages Only来实现风景闪屏。

在info.plist中,我仅将支持的方向设置为LandscapeLeft和LandscapeRight。

我在iPhone 5c和iPhone 6 plus上测试了它

enter image description here

根据苹果文档

命名您的启动图像文件

每个启动图像的名称都传达了它的目的以及它的使用方式。建议您对启动映像文件名使用以下格式:

"基名-usage_specific_modifiers.png"

文件名的一部分是您使用UILaunchImageFile键指定的字符串。 (如果未指定密钥,iOS将使用字符串Default作为启动映像名称。)对于基本名称,您可以添加几种不同类型的修饰符:

高分辨率图像修改器 - 使用@ 2x修改器识别用于Retina显示的图像。

特定于平台的修改器 - 使用修改器~iphone或~ipad指定针对特定尺寸设备的图像。

特定于方向的修改器 - 使用字符串-Landscape,-Portrait,-LandscapeLeft,-LadescapeRight或-PortraitUpsideDown指定设备处于特定方向时的启动图像。更具体的方向修改器优先于不太特定的方向修改器。例如,当设备处于正确的方向时,带有-LandscapeLeft修改器的图像优先于带有-Landscape修改器的图像。

iPhone 5修饰符 - 使用字符串-568h指定用于屏幕高度为568点的设备的启动图像。由于此类设备还具有Retina显示,因此您还应在图像名称中包含@ 2x修改器。

URL方案修饰符 - 如果您希望在启动应用程序时显示这些启动图像以打开指定类型的URL,请在启动图像名称中包含应用程序的自定义URL方案的名称。方案修饰符的格式是 - 您的自定义方案名称。例如,如果您的应用打开了myscheme://example.com形式的网址,则应在启动图片名称中包含-myscheme。

2 个答案:

答案 0 :(得分:0)

你说:

  

根据Apple文档命名您的启动图像文件,每个启动图像的名称都传达了它的用途及其使用方式

但是您不理解的是该文档非常陈旧,只有在 Info.plist 中使用单个启动图像条目时才会遵循命名约定。那不是你在做什么。您正在 Info.plist 中使用启动映像阵列。因此,您的发射图像的名称完全是任意的;只有阵列中每个启动图像的UILaunchImageOrientation告诉系统在启动时使用什么。实际上,在这种情况下,您必须使用该早期文档中的命名约定。

您需要阅读本文档:

https://developer.apple.com/library/content/technotes/tn2244/_index.html

这一个:

https://developer.apple.com/library/content/documentation/General/Reference/InfoPlistKeyReference/Articles/iPhoneOSKeys.html#//apple_ref/doc/uid/TP40009252-SW28

特别注意句子:

  

您为此密钥指定的名称[即UILaunchImageName] 应包含文件扩展名,也不应包含@2x-568h~iphone或{等修饰符{1}}。

[强调我的。]

答案 1 :(得分:-1)

尝试此操作来检测设备方向,

UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;

if(orientation == 0) //Default orientation 
    //Your image for this Orientation 
else if(orientation == UIInterfaceOrientationPortrait)
    //Set image if the orientation is in Portrait
else if(orientation == UIInterfaceOrientationLandscapeLeft)
    // Set image if Left

else if(orientation == UIInterfaceOrientationLandscapeRight)
    //Set image if right

如需更多参考,请访问this link