Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS 9 xCode 7内置应用程序显示黑色矩形而不是闪屏_Ios_Objective C_Iphone_Ios9_Xcode7 - Fatal编程技术网

iOS 9 xCode 7内置应用程序显示黑色矩形而不是闪屏

iOS 9 xCode 7内置应用程序显示黑色矩形而不是闪屏,ios,objective-c,iphone,ios9,xcode7,Ios,Objective C,Iphone,Ios9,Xcode7,我知道这个问题看起来像是一些现有问题的翻版,但事实并非如此 我正在努力解决通用(iPad/iPhone)应用程序不再显示初始屏幕的问题 在升级到iOS 9和Xcode 7之前,不存在此类问题。升级后,未对初始屏幕进行任何更改 与问题相关的技术数据: 支持的设备有iPad(仅适用于横向)和iPhone (纵向/横向) 我使用“launchscreen.xib”,它有一个UIImageView,其中包含大小类和 约束设置为始终全屏显示 我在图像资源中添加了所有闪屏图像(iPad除外) 肖像画) 我

我知道这个问题看起来像是一些现有问题的翻版,但事实并非如此

我正在努力解决通用(iPad/iPhone)应用程序不再显示初始屏幕的问题

在升级到iOS 9和Xcode 7之前,不存在此类问题。升级后,未对初始屏幕进行任何更改

与问题相关的技术数据:

  • 支持的设备有iPad(仅适用于横向)和iPhone (纵向/横向)
  • 我使用“launchscreen.xib”,它有一个UIImageView,其中包含大小类和 约束设置为始终全屏显示
  • 我在图像资源中添加了所有闪屏图像(iPad除外) 肖像画)
  • 我使用Xcode版本7.0.1(7A1001)和iOS 9.0.2
  • 这个问题不会发生在iPad上
iPhone 5s上错误的启动屏幕如下所示:

这是在肖像模式下制作的,所以在这个“黑色方块”的顶部和底部都有白色方块

昨天我一直在努力解决这个问题,但我通过将我的启动屏幕重命名为“LaunchScreen.xib”(没有空格)成功地解决了这个问题。但今天早上,这个问题再次出现

我尝试过的事情:

  • 再次删除和创建LaunchScreen.xib(有无空间)
  • 创建LaunchScreen.storyboard文件而不是xib
  • 添加LaunchScreen.xib中使用的图像的@2x和@3x版本
  • 删除/添加/替换图像资源中的图像
  • 清理、生成清理,甚至删除派生数据
  • 重新启动设备,重新安装应用程序,在不构建的情况下重新启动,以及我能想到的许多其他解决方案
没有任何帮助,所以也许有人已经解决了类似的问题,可以引导我走向正确的方向

编辑1


因此,我将使用的LaunchScreen.xib图像从“Default.png”重命名为“DefaultSplash.png”。这立即解决了iPhone上的所有问题。但现在我有了一个新问题——iPad splashscreen现在是黑色的。如果我将LaunchScreen图像设置为project中使用的其他图像,Ipad会将其显示为splashscreen,没有任何问题,但现在Ipad上既不能使用Default.png也不能使用DefaultSplash.png。这真是一个奇怪的问题。

Xcode7 iOS 9以后的版本有了变化。他们已经修改了Launchscreen(我们将看到黑屏)。如果您更改部署目标,则意味着您可以看到以前的启动屏幕。只有空的视图控制器存在,因此我们必须对其进行更改。
根据资产中的要求,在imagecassets中添加图像。

Xcode7 iOS 9及以后的版本中有一个更改。他们已经修改了Launchscreen(我们将看到黑屏)。如果您更改部署目标,则意味着您可以看到以前的启动屏幕。只有空的视图控制器存在,因此我们必须对其进行更改。
根据资产中的要求,在imagecassets中添加图像。

因此我修复了如下问题:

由于我重命名了文件
LaunchScreen.xib
,它修复了iPhone上的一个问题,但在iPad上也造成了类似的问题。从那时起,我不能为同一个xib使用相同的图像文件名(即,如果图像“Default.png”失败,它就不能被任何错误使用)。所以我创建了两个文件,
LaunchScreen.xib
LaunchScreen~iphone.xib
,每个文件都有单独的图像文件。现在它可以正常工作了


看起来很难看而且有问题,但它可以工作。

因此我修复了如下问题:

由于我重命名了文件
LaunchScreen.xib
,它修复了iPhone上的一个问题,但在iPad上也造成了类似的问题。从那时起,我不能为同一个xib使用相同的图像文件名(即,如果图像“Default.png”失败,它就不能被任何错误使用)。所以我创建了两个文件,
LaunchScreen.xib
LaunchScreen~iphone.xib
,每个文件都有单独的图像文件。现在它可以正常工作了


看起来很难看,但它可以工作。

在我的例子中,“Launch Screen.xib”中的图像没有显示出来。我不得不重新命名它们,并在nib文件中重置新名称以使其正常工作。

在我的情况下,“Launch Screen.xib”中的图像没有显示。我不得不重命名它们,并在nib文件中重置新名称以使其正常工作。

这听起来可能很愚蠢,但可能会发生与此场景相关的事情:


如果您挂接任何插座,然后通过更改自定义类来打破它,您将在没有任何警告的情况下获得此黑屏行为,而不是来自任何未启动情节提要/场景的典型崩溃,这将导致在应用程序启动之前出现黑屏。

这听起来可能很愚蠢,但可能会发生与此场景相关的事情:


如果您挂接任何插座,然后通过更改自定义类来打破它,您将在没有任何警告的情况下获得此黑屏行为,与任何非启动脚本/场景的典型崩溃不同,这将导致应用程序启动前出现黑屏。

如我在原始问题中所述,我在“图像资源”文件夹中添加了所有可能的图像并分配了它们。或者您正在谈论其他解决方案?是的,从Images.xcsets中删除启动屏幕资源,并尝试创建新的资源,并根据需要添加图像。我尝试删除启动屏幕图像资源并重新创建所有新的内容。不幸的是,这并没有解决我的问题。正如我在最初的问题中提到的,我确实在“图像资源”文件夹中添加了所有可能的图像并分配了它们。或者您正在谈论其他解决方案?是的,从Images.xcsets中删除启动屏幕资源,并尝试创建新的资源,并根据需要添加图像。我尝试删除启动屏幕图像资源并重新创建所有新的内容。不幸的是,这并没有解决我的问题。您可以尝试为临时构建构建归档并导出切片的变体。(“导出向导中的“导出特定设备”选项)。这有助于查看输出中是否缺少任何资源…@MartinUllrich这是解决此问题的一种非常有趣的方法。我