我正在尝试使用UILaunchImages
为LandScapeLeft
和LandScapeRight
方向提供不同的图片,但只有其中一个被提取,有人可以提供UILaunchImages
和LandScapeLeft
方向的LandScapeRight
的确切命名惯例,我希望为iPhone,iOS8及更高版本提供这些图像。
正是我正在寻找具有iOS8以上正确命名约定的启动图像的确切大小,有较旧的帖子确实提供了UILaunchImages
的详细信息,但我在{{1}中看到了已针对iOS的最新更新更新了图片大小
我希望用UILaunchImages Only来实现风景闪屏。
在info.plist中,我仅将支持的方向设置为LandscapeLeft和LandscapeRight。
我在iPhone 5c和iPhone 6 plus上测试了它
根据苹果文档
命名您的启动图像文件
每个启动图像的名称都传达了它的目的以及它的使用方式。建议您对启动映像文件名使用以下格式:
"基名-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。
答案 0 :(得分:0)
你说:
根据Apple文档命名您的启动图像文件,每个启动图像的名称都传达了它的用途及其使用方式
但是您不理解的是该文档非常陈旧,只有在 Info.plist 中使用单个启动图像条目时才会遵循命名约定。那不是你在做什么。您正在 Info.plist 中使用启动映像阵列。因此,您的发射图像的名称完全是任意的;只有阵列中每个启动图像的UILaunchImageOrientation告诉系统在启动时使用什么。实际上,在这种情况下,您必须不使用该早期文档中的命名约定。
您需要阅读本文档:
https://developer.apple.com/library/content/technotes/tn2244/_index.html
这一个:
特别注意句子:
您为此密钥指定的名称[即
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