繁体   English   中英

黑屏而不是 iPad 上的启动图像

[英]Black screen instead of launch image on iPad

我正在为 iOS 6.1 和 7(使用 Xcode 5)开发一个 iPhone 应用程序。 iPad 启动图像有问题。

在 iPad 7.0 和 7.0.2 上,未显示启动图像(在 6.1 中有效!):我在加载应用程序时出现黑屏。

我在 iPhone 6.1 和 7.0.2 上没有遇到这个问题,尽管我设置了 iPad 和 iPad 视网膜(横向和纵向)所需的所有启动图像,并且我使用了资产目录。

我错过了什么?

最近我的应用程序只为 iPhone 设计,我遇到了同样的问题,我遇到了启动图像不会出现在 iPad 中的问题(在 iPad ios >= 7.0.x 上,启动图像没有显示我在加载应用程序时出现黑屏(在 iPad ios < 7.0.x 中它工作正常))。

我没有遇到这个问题,iPhone 在所有 iOS 版本中都运行良好。

解决方案:更新到资产目录以管理您的应用程序的图像并仅针对 iOS 6 和之前的版本。

步骤:

第 1 步:

更新到资产目录

第 2 步:

选择迁移

第 3 步:在右上角单击“属性检查器”图标。 您可以在此处设置启动映像的目标操作系统。

取消选中 iPhone 的 iOS 7 复选框

取消选中 iPhone 的 iOS 7 复选框,现在您应该能够在 iOS >= 7.0.x 上看到 iPad 的启动图像。

如果你有和我一样的情况,那就是解决方案:

我的应用程序仅限横向,仅限 iOs7,ipad\\iphone (XCode 5)。

问题:在 iphone(和模拟器)上启动黑色,在 ipad 中正常启动。

解决方案:转到 Images.xcassets - Launch Images - 选择它。 取消选中所有“iOs7 及更高版本”框。 选中“iOs6 及之前”框并用图像填充空白区域。

奇怪,但有效。

根据 Apple 的文档( 链接); 一个空的 iPad 特定故事板可能就是答案。 我还看到了在情节提要中未设置初始视图控制器导致黑屏的问题。 此问题的一个变体可能是应用程序 plist 中的设置不正确。

技术问答 QA1780 为什么我的应用程序在 iPad 上启动时出现黑屏?

问:为什么我的应用程序在 iPad 上启动时黑屏?

答:专为 iPhone 设计的应用程序在 iPad 上运行时可能会启动到空白屏幕。 这是由于应用程序包中存在空的 iPad 特定故事板以及应用程序的信息属性列表 (Info.plist) 文件中的 iPad 特定 UIMainStoryboardFile 键造成的。 如果选择了 Universal 选项,两者都是由各种 Xcode 模板项目自动创建的。

...

在 Xcode 中

在文件导航器中查找名为 MainStoryboard_iPad.storyboard 的文件。 如果此文件存在,请将其从您的项目中删除。

在您应用的信息属性列表中

查找名为 Main storyboard file base name (iPad) 或 UIMainStoryboardFile~ipad 的键。 如果此键存在,请将其删除。 您还应该删除以 (iPad) 或 ~ipad 为后缀的任何其他键。

最后,在 iPad 或 iPad 模拟器中测试您的应用程序并验证它的行为是否符合预期。

我请求 Apple 支持,结果发现这是一个错误。 他们要我报告,我照做了。 这是报告 ID:15340531。现在由他们决定。

使用 LaunchScreen.storyboard

我遇到了类似的问题,直到我在General Project Settings 中找到以下设置。

  1. 将您的主界面设置为您的主故事板文件。 我的叫做Main.storyboard

在此处输入图片说明

  1. 启动屏幕文件设置为启动屏幕故事板文件。 我的叫做LaunchScreen.storyboard (这是我最初忽略的内容。)

在此处输入图片说明

之后,首先加载启动屏幕,然后不久加载主故事板。

再次尝试设置图像,确保启动画面的分辨率符合 iOS 7 指南

我知道这听起来很愚蠢。 当我用 jpg 扩展名以 psd 格式保存文件时,我遇到过这样的错误。 保存启动图像时只需单击 1 次错误。

在尝试了这里找到的几种解决方案后,我怀疑 iPhone 试图以横向启动,因此没有找到任何相应的启动图像。 事实上,模拟器在 Landscape 中启动是出于我不理解的原因。

最后,在阅读 Apple 文档后,我发现可能是 info.plist 文件的“支持的界面方向”中的键顺序不够用。 肖像是最后一项。 当它是第一项时,应用程序以纵向模式启动并找到图像。

从设备或模拟器中删除以前安装的应用程序,然后在清理后重新启动应用程序。

我遇到了启动图像不会出现在 iOS 7 中的 iPhone(3.5 或 4 英寸)中的问题,但 iPad 在 iOS 7 中没有问题。

长话短说,我仅禁用了启动图像的资产目录。 所以我以老式的方式添加启动图像。 这似乎解决了问题。

明天我将不得不进行更多测试,但问题似乎已解决(至少在我的情况下)。

在此处输入图片说明

在 Xcode 5 中,确保您添加了应用程序目标中提到的所有需要​​的图像。

我假设当您使用资产目录时,您已确保正确添加了 Images.xcassets 目标成员资格。 我之所以提到这一点,是因为如果您有多个目标,看起来您必须手动添加它们(并且您没有提供任何屏幕截图,因此可以确定)。

既然您还没有真正提供项目中 Images.xcassets 文件夹的“LaunchImage”概述的屏幕截图,我只能猜测可能的原因。 考虑到启动图像适用于 iPhone(6.1 和 7.0.2 和 iPad(6.1)并且仅适用于 iPad(7.0 及更高版本)),我认为您也许可以看看iPad Portrait 和 iPad Landscape 的图像适用于 iOS7。具体来说,您应该看到您的启动图像,而不是如附图所示的空矩形- iOS7 iPad 启动图像(纵向和横向)- 大小不正确

这可能是因为您仍然为 iOS7 创建了 iPad 启动图像,但状态栏区域除外。 在 iOS7 之前,iPad 启动图像被创建以排除状态栏区域,但在 iOS7 上所有启动图像必须包含状态栏区域是必须的。 请仔细阅读 Apple iOS7 UI 转换指南 ( https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/TransitionGuide.pdf ) 中的“Things Every App Must Do”部分。

以下屏幕截图应该可以解释我在说什么 -iPad 启动图像尺寸 - iOS6 和 iOS7

例如,您可以看到 iOS6.1 及更高版本的 iPad Landscape Retina 图像尺寸为 2048x1496(不包括状态栏的 40 像素),但 iOS7.0 及更高版本的相同图像的尺寸预计为 2048x1536(包括状态栏的 40px)吧)。 因此,如果您没有相应地更改图像,您将在 iPad 7.0 及更高版本上看到图像黑屏。 在 iPhone 上,你不会遇到这个问题,因为 iPhone 启动图像总是覆盖状态栏,无论是 iOS6.0 还是 iOS7.0,所以新的 UI 要求已经满足 iPhone 启动图像的要求。

我发现这个答案适用于我们的应用程序(仅限 iPhone,但在 iPad 上使用): https : //stackoverflow.com/a/19448782/1258419

总结一下那个答案:

怎么做。 转到资产目录。 然后在右上角单击“属性检查器”图标。 您可以在此处设置启动映像的目标操作系统。 取消选中 iPhone 的 iOS 7 复选框。 现在您应该能够看到这些设备的启动图像。

我在横向遇到了类似的问题,我的 iOS 7 启动图像没有显示而 iOS 6 显示。 我的是 iPhone Retina 3.5” 发布图片。

由于我的另一个纵向应用程序没有共享此问题,因此我做了两件事:

  1. 在 info.plist 中,在“支持的界面方向”下,我也添加了 2 种纵向模式,并将它们放在横向之前,如下所示:

     Item 0: Portrait (top home button) Item 1: Portrait (bottom home button) Item 2: Landscape (right home button) Item 3: Landscape (left home button)
  2. 在视图控制器中实现了这个方法:

     -(NSUInteger)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskLandscape;

    }

无论是否使用资产目录,这都适用。

这是 iOS 8 的更新。

当我尝试将LaunchImage添加到我的 iOS 8 应用程序时,我遇到了同样的问题。

Apple 允许开发人员使用默认名称为LaunchScreen.xib来呈现 iOS 8 的启动视图。我相信开发人员可以使用LaunchImageLaunchScreen.xib 不幸的是,我无法找到说明如何处理任何文件LaunchImageLaunchScreen.xib进行了介绍。 当我尝试使用LaunchImage作为启动视图时,总是出现黑屏。

我的解决办法是:

  1. 不要考虑LaunchImage 使用LaunchScreen.xib (不过,您必须在资产目录中保留一个空的LaunchImage 。我认为这是一个错误。)

  2. UIImageView拖到 xib 并使UIImageView全屏显示。 记住要考虑尺寸等级和约束。

  3. 将分辨率足够 iPhone 6 plus 的图片设置为UIImageView

检查您的所有图像,看看它是否正确放置在资产中并正确命名和大小。

还要检查您允许的方向,并相应地将图像添加到资产中。

我有同样的问题。 我不得不采取一种解决方法:对所有 iOS 版本使用默认图像,并从 info.plist 中删除 UILaunchImageFile 键。

我不能为 iOS 7 和以前的版本使用不同的启动图像,因此,我必须为所有人使用相同的“艺术”图像,而不是模仿应用程序第一个视图的图像(Apple 推荐并且我更喜欢),但在至少我不再出现黑屏了。

看起来允许在 iOS 7 和以前版本中使用不同的启动图像的 UILaunchImageFile 键对于 iOS 7 中的 Retina iPad 无法正常工作。

警告:我仍在测试该应用程序,所以我不知道是否会产生一些副作用。

我也遇到了类似的问题,但它的解决方案很简单(就我而言)。

我所做的只是跟随-

1.添加一个新文件(如果你还没有添加)Launchscreen.storyboard

2.获取一个UIViewController ,将其标记为Is Initial View Controller然后在其中添加一个UIImageView并设置您要在启动应用程序期间显示的图片。 确保你给这个UIImageView所需的约束。

3.转到 Project->General->App Icons and Launch images 并选择 Launchscreen.storyboard 作为 Launch Screen File(会有一个下拉菜单)。

由于 iOS 13 及更高版本,应用程序启动与早期版本不同。

从以下 URL 获取解决方案。

https://stackoverflow.com/a/59913274/883505

我只是忘了在我的视图控制器中调用 super.loadView() ......

override func loadView() {
    super.loadView()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM