iOS 9 Xcode 7 - 应用程序在顶部和底部出现黑条

Posted

技术标签:

【中文标题】iOS 9 Xcode 7 - 应用程序在顶部和底部出现黑条【英文标题】:iOS 9 Xcode 7 - Application appears with black bars on top and bottom 【发布时间】:2015-09-17 22:57:18 【问题描述】:

在 iPhone 6 ios9 上安装了该应用程序,这就是发生的事情。注意顶部和底部的黑条。它在 iOS8 上运行良好。我该如何解决?

我尝试使用 Xcode 6.4 和 7 进行构建。结果相同。

(iPhone 5 曾经运行这样的 iPhone 4 应用程序)

【问题讨论】:

刚升级到 iOS 9 后,我在 iPhone 6 上遇到了同样的问题 您是否在应用中使用导航或标签栏控制器? @RonWood 实际上都是。 在这里尝试修复:***.com/questions/32312906/… 快速修复:在 Project/Targets/"App Icons and Launch Images" 下,对于 App Icon 源选择“AppIcon”(即使用 ASSET CATALOG),然后删除所有Default-568h@2x.png 样式的启动屏幕文件。清理、构建,应在每台设备上全屏显示 【参考方案1】:

您是否从早期版本的 Xcode 迁移了您的应用程序?如果是这样,那么 Xcode 现在正在对您的屏幕尺寸进行假设,您需要一种在运行时指示实际屏幕尺寸的方法。

有两种方式:

a) 如果您使用启动屏幕。

您缺少 LaunchScreen.storyboard 文件。 从 New File... 对话框中创建一个 Launch Screen 对象

b) 如果您不使用启动屏幕。

转到 Target 的设置并选择 General,然后选择 App Icons 和 Launch Images。 现在将“启动屏幕文件”设置为您的“main.storyboard”(或其他情节提要,如果合适)

【讨论】:

LaunchScreen.storyboard 的内容应该是什么?我收到一条错误消息,提示 OSX 情节提要不支持目标设备“iphone” 您不需要 LaunchScreen 文件。另一种选择是为每种支持的屏幕尺寸提供所需的启动图像。 我在 iOS 9.1 中打开应用程序时遇到了同样的问题,但我的问题已通过添加所有分辨率的启动屏幕图像得到解决,感谢@rmaddy 如果您没有 Launch.screen.storyboard 以使其工作,我需要将“启动屏幕文件”更改为 MainStoryBoard @Sausage 我们的应用程序在缩放模式下工作(没有启动屏幕,没有启动图像,没有约束,只是默认 568h@2x)。那么我们如何才能支持 iphone x 呢?【参考方案2】:

我的应用不使用启动图像。 将“启动屏幕文件”设置为我的“main.storyboard”文件为我解决了这个问题。

此设置可以在“目标->常规->应用图标和启动图像”下找到

使用以下链接了解更多信息: http://oleb.net/blog/2014/08/replacing-launch-images-with-storyboards/

【讨论】:

这对我有用,而且似乎比在您的项目中添加一个随机的新故事板更好。 如果项目是 Parse IOS swift starter 项目,转到 Target->General->App Icons and Launch Images 并且“Launch Screen File”下拉值是空的。所以选择“Main.storyboard”将解决“顶部和底部的黑条”问题。 如果您需要为启动图像提供自定义视图或者您的启动图像与情节提要初始视图控制器不同,则此解决方案将不起作用。【参考方案3】:

对我来说,问题是我正在从早期版本的 Xcode 迁移我的应用程序,并且该项目缺少 LaunchScreen.storyboard 文件。我刚刚创建了 LaunchScreen.storyboard 并将其添加到启动屏幕文件。这成功了。

【讨论】:

【参考方案4】:

我正在使用 xcode 7.2 。起初,我创建了一个 LaunchScreen.storyboard 文件,名称为 Potassium Permanganate 建议,它的工作!但是,我不想要启动屏幕,所以我尝试将 Main.storyboard 设置为启动屏幕文件,它成功了!

【讨论】:

【参考方案5】:

当您将应用从早期版本的 xCode 迁移到 xCode 6 或 xCode 7 时,您将面临这个问题。

对于 iOS 7 及更早版本,开发者需要提供单独的启动 其应用支持的所有屏幕尺寸、分辨率和方向的图像。

在 Xcode 6 或更高版本中,还有另一个选项。您可以指定一个故事板,其初始视图控制器将用作应用程序的启动屏幕。使用以下步骤:

创建一个名为 LaunchScreen.storyboard 的空白故事板文件。

转到您的目标设置,然后在“常规”选项卡上,选择情节提要作为“应用程序图标和启动图像”部分的启动屏幕文件。 Xcode 会在你应用的 Info.plist 中添加一个对应的 UILaunchStoryboardName 键。当此键存在时,Xcode 将优先于您可能设置的任何启动图像。

将一些子视图添加到新创建的情节提要的视图中,并使用约束定位它们。当您在设备上启动应用时,操作系统应使用场景作为启动屏幕。

从模拟器中删除旧应用并清理项目。

干杯:-)

【讨论】:

【参考方案6】:

我的应用也有同样的问题。在我的应用程序中,我向 project 添加了多个目标。如果我使用启动故事板解决方案,那么我可以看到全屏,但在我的情况下,我的午餐图像在 iPhone 4 上看起来模糊和拉伸。为了摆脱这个问题,我使用了 LaunchImage 资产解决方案。在此之后我仍然面临同样的问题。我已经尝试了上述所有解决方案,最后我发现我的 png 图像不包括 ALPHA 分辨率。添加新图像后,我可以看到全屏图像。

【讨论】:

【参考方案7】:

如果你根本不使用情节提要的话。

当您在App icons and Launch Images 中从Launch Screen File 中删除LaunchScreen 时会发生这种情况。

不要从这里删除它,而是转到 info.plist 并找到 Launch screen interface file base name 并删除 LaunchScreen,即留空。

如果您已经从Launch Screen File 中删除了LaunchScreen,它将不会显示在 info.plist 中。然后您可以在Launch Screen File 中输入任何名称,它会出现,您可以删除该名称。

【讨论】:

【参考方案8】:

转到资产目录并创建一个新的 iOS 启动图像。然后在Target>General>App Icons and Launch Images>Launch Image Source中,您将自动看到在资产目录中创建的新Launch Image。

【讨论】:

【参考方案9】:

就我而言,我在项目中有几个目标,每个目标都有自己的启动屏幕图像。奇怪的是,其中一个目标看起来不错,但其他目标却有那些黑条。事情是在资产内的 Launch 文件夹的名称中。将名称更改为 LaunchImage 即可解决问题。

【讨论】:

【参考方案10】:

斯威夫特 4.2

如果 LaunchScreen.storyboard 为空,则选择它

【讨论】:

【参考方案11】:

iOS 改变了系统检测 iPhone 分辨率的方式。您过去必须提供许多名为“Default-568@2x.png”、“Default-667h@3x.png”之类的 png 图像。现在您不必再这样做了。您需要删除那些“Default-568@2x.png”样式文件,然后继续在您的项目中使用正确的 LAUNCH SCREEN 对象。

要添加启动屏幕,只需转到 New File... 对话框(File / New / File,或按 Cmd + N)

双击新的启动屏幕文件进行编辑。确保在其属性中勾选“用作启动屏幕”。

最后一定要在项目属性/目标/“App Icons and Launch Images”下选择你的LaunchScreen.storyboard文件

【讨论】:

【参考方案12】:

在我的情况下,我有一个带有启动图像的资产,但它也显示了顶部和底部的黑条。

我已经尝试了启动情节提要解决方案,是的,它可以工作,但我不想添加新文件,所以这是我为解决问题所做的:

    将我的启动图像复制到另一个文件夹 删除了现有的 LaunchImage 资产 添加了新的 LaunchImage 资产 将图像添加到新的 LaunchImage 中

就是这样!

【讨论】:

【参考方案13】:

转到该部分中的 xcode 中的目标设置 转到该部分中的应用程序图标和启动图像部分选择启动屏幕文件,您将找到一个下拉值选择 CDVLaunchScreeen 值与启动屏幕文件值

【讨论】:

【参考方案14】:

我在 iPod 上遇到过类似的问题。为了解决这个问题,我更换了

<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIpad</string>
<key>UILaunchStoryboardName~iphone</key>
<string>LaunchScreenIphone</string>

<key>UILaunchStoryboardName~ipad</key>
<string>LaunchScreenIpad</string>
<key>UILaunchStoryboardName~iphone</key>
<string>LaunchScreenIphone</string>
<key>UILaunchStoryboardName~ipod</key>
<string>LaunchScreenIphone</string>

在 Info.plist 中。

【讨论】:

【参考方案15】:

我有一个旧应用程序(iOS 7.4 - 8.2),升级后遇到了同样的问题(顶部出现黑色空条),我设法通过以下方式解决了它:

Main.storyboard 选择您的场景和控制器 在左侧菜单中,转到属性检查器 找到“演示文稿”,而不是“自动”,将其设置为“全屏

它对我有用。

【讨论】:

【参考方案16】:

我的应用程序是用 python kivy 编写的。这就是我所做的。它奏效了。

    原因是我没有定义 AppIcon 和 LaunchImage。 有一个免费网站可以为您提供一组图标和 各种设备的启动图像。 一旦你有了完整的集合,通常是 2 个文件夹 - AppIcon 和 启动图像文件夹。打开你的 Xcode 项目,General > AppIcon 和 启动图片。 在 AppIcon Source 中,单击右侧的箭头。它会去 另一个页面,您可以在其中拖放两个文件夹 (是的,拖动文件夹)。 回到之前的General选项卡,在AppIcon Source中,可以 选择您的文件夹,通常称为 AppIcon-1。并勾选'包括所有 图标资产' 将“启动屏幕文件”留空。这与 以前的 Xcode 版本。 在部署信息,状态栏样式下,可以勾选要求 全屏。

完成这些步骤后,您应该可以再次加载了。

请注意,这些步骤适用于非故事板应用。就我而言,我的应用是用 kivy 编写的。

【讨论】:

【参考方案17】:

不要做之前答案中描述的任何事情......

要显示视图控制器,请执行以下单个步骤

Step 1 : Add the splash Screen for iPhone and iPad.

此后此错误不会再次出现。

【讨论】:

以上是关于iOS 9 Xcode 7 - 应用程序在顶部和底部出现黑条的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 7.1 iOS 9.1 模拟器透明

在 Xcode 7 ios9 中正常时,UIScrollView 在 xcode8、ios10 中没有响应

无法将 ios 9.1 设​​备连接到 xcode 7.1

在 Xcode 7 for iOS 9 中 XPC 连接中断

升级 iOs 9 + Xcode 7 破坏了 iOS 本地化

XCode autolayout iOS9 - 在顶部栏下方和中间水平设置 TextLabel 几个像素