iPhone 5上的应用未使用完整的屏幕高度

19

我有一个很久以前创建的应用程序,并更新为使用Storyboards。所有视图已重建并连接。但是,尽管在Storyboards中显示其根据屏幕大小进行调整,但该应用程序未使用iPhone 5的整个高度。实际上,在启动时没有任何启动屏幕显示出来,只有一个黑屏。

我确实有一个完整尺寸的启动图片,大小和命名都正确,并且它显示在设置的“常规”选项卡中。我是否缺少某些需要更改的设置?我已经尝试了一切。

另外说明:我有一种感觉,这可能与启动屏幕不会在启动时显示有关。即使所有三个启动屏幕都有设置。启动时只会出现一个空白的黑屏。

10个回答

36
如果您将启动图像放在资源目录中,可能会出现以下问题:
在主项目设置(单击文件浏览器中的顶部条目时)中,在“常规”下向下滚动大约一半到“应用程序图标和启动图像”。其中有一个“启动图像源”的条目。您可能会看到一个按钮,上面写着“使用资源目录”。当您单击它时,Xcode会要求您将启动图像“迁移到”资源目录。请继续执行此操作,尽管它可能只会创建一个新的空白启动图像集,稍后可以删除。然后完成此操作后,您应该会看到一个下拉菜单,其中包含按钮,您可以在其中选择实际的启动图像。然后,如果您想,您可以进入资源目录并删除Xcode刚刚创建的启动图像集。
请参见下面的照片,确保Launce Screen File有一个条目!

enter image description here


这解决了我的问题。每个人都提到了Default-568h@2x.png,但我没有找到其他人注意到这一点,谢谢。 - HPP
这也解决了我的问题。非常感谢你! - bobbyg603
6
我遵循了列出的所有步骤,但仍然无法正常运行。迁移后,我不得不设置一个"启动屏幕文件"。设置完成后,它就像魔术般地正常工作了。如果你有一个像我一样旧的项目,那么你可以创建一个启动屏幕文件:文件 > 新建 > 文件 > 用户界面 > 启动屏幕。 - CaseyB
很好的答案,解决了我的问题! - Kitson
对我来说,解决方案是在第三个框中放置一个值。在我的情况下是 CDVLaunchScreen.storyboard 文件。 - Coo
谢谢你。这一点远非显而易见 - yarrichar

4

只需为 iPhone 5 添加启动画面图片(640 x 1136 像素)即可。


它已经被包含在内了。那不是问题。就像我提到的那样,没有任何启动屏幕显示出来。 - Michael Reiland

2
  1. 创建一个新项目(单视图应用)。
  2. LaunchScreen.storyboard拖入项目中(勾选“如果需要,复制项目”)。
  3. 选择已复制的“LaunchScreen.storyboard”作为“启动屏幕文件”。

我在Xcode 7 GM中测试了没有xib/storyboard的应用。


2

你是否有尺寸为640 x 1136的启动(默认)图像?如果没有,应添加名称为Default-568h@2x.png且大小为640 x 1136的图像。

如果没有这个图像,iOS将认为您的应用程序不支持新的尺寸。

AppleDocs


2

我在搜索相关内容时偶然发现了您的帖子-不确定您是否已经解决了问题,但是当我更新我的应用程序以包括视网膜分辨率图像时,我遇到了一个问题,应用程序无法检测到它们.... 直到我在图像的文件检查器中发现了目标成员资格复选框。

我添加到解决方案中的新图像未为我的应用程序在文件检查器中选中,因此未被编译-一旦选中,它们就被包含并在正确的上下文中显示。


1
您可能缺少启动图的Retina-4"版本;如果没有这个版本,系统将以3.5"模式启动您的应用程序。如果您当前有例如Default.pngDefault@2x.png,请添加一个名为Default-568h@2x.png的640x1136版本。

我确实有一个名为那个的版本,并且它在我的“常规”选项卡中显示在正确的位置。 - Michael Reiland

1

我也遇到了同样的问题。我的情况是我正在使用一个MainWindow.xib文件。

当我打印窗口的框架时,它是{0,0}{320,568},但是应用程序没有响应480像素后的区域。

我所做的是在界面构建器中打开MainWindow.xib文件并选择全屏启动选项。

我附上了截图,您可以在其中找到此选项。

enter image description here

这对我很有用。如果您正在使用 Mainwindow.xib,则可以尝试应用相同的方法。希望它能帮助您解决问题。享受编程..!!!

实际上,那已经被弃用了,因为我正在使用故事板,所以我不再使用单独的xib文件。 - Michael Reiland

0

如果您正在使用启动图像资源目录,则可能没有为视网膜占位符添加图像。请在那里添加图像。您可能可以在那里添加与2x部分相同的图像。然后修改资产文件夹中的contents.json,以便不会为相同的图像创建重复项。


0

您的应用程序已经使用iOS 5或更早版本编译,并且您正在使用iOS 6或更高版本的设备查看它。

在Xcode中将您的应用程序设置为iOS 7,并使用自动布局约束使其在两个设备上运行。如果您想支持iOS 5或更早版本,则建议您拥有多个故事板,因为它们没有自动布局约束。

您需要使用iOS 6+ SDK编译代码并使用自动布局约束。

//编辑:如果您已经将iOS 6+设置为项目的部署目标

如果您的iOS设置为6及以上,请检查您的故事板设置,以确保故事板的部署目标为iOS 6及以上。


它与 iOS 7 没有任何关系。在任何操作系统版本中都没有使用设备的完整高度。 - Michael Reiland
1
你正在使用自动布局吗? - Kunal Balani
我不喜欢它,但即使我打开它,它也不起作用。 - Michael Reiland

0
我按照列出的所有步骤操作了,但仍然无法工作。
迁移后,我必须设置一个“启动屏幕文件”。在我这样做之后,它像魔术一样正常工作。如果您有像我一样的旧项目,那么可以创建一个启动屏幕文件:文件> 新建> 文件> 用户界面> 启动屏幕。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接