【问题标题】:iPhone splash screen with LandscapeLeft and LandscapeRight orientations具有 LandscapeLeft 和 LandscapeRight 方向的 iPhone 闪屏
【发布时间】:2017-05-11 11:51:38
【问题描述】:

我正在尝试使用UILaunchImagesLandScapeLeftLandScapeRight Orientation 提供不同的图像,但只有其中一个被拾取,谁能提供UILaunchImages 的确切命名约定为@987654327 @ and LandScapeRight Orientation,我希望为 iPhone、iOS8 及更高版本提供这些图像。

确切地说,我正在寻找具有适用于 iOS8 及更高版本命名约定的启动图像的确切大小,有一些较旧的帖子确实提供了UILaunchImages 的详细信息,但我看到在Apple Human Interface Guideline 中,图像大小已经更新为iOS 的最新更新

我希望仅使用 UILaunchImages 来实现横向启动画面。

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

我已经在 iPhone 5c 和 iPhone 6 plus 上测试过了

根据苹果文档

命名您的启动图像文件

每个启动图像的名称都传达了其用途和使用方式。建议您使用以下格式的启动图像文件名:

“basename-usage_specific_modifiers.png”

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

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

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

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

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

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

【问题讨论】:

  • 您是否在 LaunchScreen Storyboard 中设置图像?在此处添加一些代码。
  • 不,我没有使用 LaunchScreen Storyboard
  • 在这里查看我的答案。
  • 您可能应该指定您测试过的设备/iOS 版本。
  • 对于 iPhone 5c,您只指定了一个横向图像...

标签: ios iphone splash-screen


【解决方案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

【讨论】:

  • 我希望只使用 UILaunchImages,在 info.plist 中我已将支持的方向设置为 LandscapeLeft 和 LandscapeRight
【解决方案2】:

你说:

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

但您不明白的是,该文档非常陈旧,并且仅当您在 Info.plist 中使用单个启动图像条目时才遵守命名约定。那不是你正在做的事情。您在 Info.plist 中使用了 Launch Images array。因此,您的启动图像的名称是完全任意的;只有数组中每个启动图像的 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

特别注意这句话:

您为此键指定的名称 [i.e. UILaunchImageName] 不应包含文件扩展名,也不应包含诸如@2x-568h~iphone~ipad 等修饰符。

[强调我的。]

【讨论】:

  • 根据文档,应该指定单个启动图像,我正在这样做,虽然屏幕截图中没有显示,但我的启动图像名称是 splashpt,并且必须为不同的屏幕尺寸提供 UILaunchImages 数组我指的是最新的在线苹果文档
  • 随便。我认为你在做什么很愚蠢;你应该使用一个启动屏幕故事板,然后让它去。但是,我坚持我的回答。
  • 我已经使用来自苹果的示例作为参考来提供 UILaunchImageName developer.apple.com/library/content/samplecode/Icons/…,可能这个示例是旧的,但是我确实在最后删除了修饰符,以检查它是否有效并使用我无法使用启动屏幕故事板选项
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多