我有一个支持 iOS8 及更高版本的应用程序,内置于 Xcode 7 中,我正在使用 XIB 作为启动屏幕(我没有启动图像)。该视图包含一个带有应用程序版本的 UILabel 和 2 个带有图像的 UIImageViews,它们都存在于 Images.xcassets 中:一个徽标和一个启动图像。
当我启动应用程序时,UILabel 和徽标图像正确显示,但如果我在带有 iOS9 的 iPad Air 2 上运行应用程序,则启动图像不会。我已经在运行 iOS8 的 Air 和 Mini 以及适用于 iPad 2、iPad Air 和 iPad Air 2 的 iOS9 模拟器上进行了测试,并且图像在所有这些模拟器中都正确显示。
我进行了一些基本的故障排除,看看我是否能弄清楚发生了什么,但我无法解决它,我能看到的唯一区别是在工作的图像和失败的图像之间,我将它添加到资产...
以下是我所知道的概要:
初始图像的 UIImageView 位于正确的位置,大小正确。我可以这么说,因为我将它的背景颜色设置为绿色只是为了确保。视图在那里,但图像没有出现。所以我假设这个观点不应该受到指责。
将初始图像的 UIImageView 设置为也使用徽标图像会使徽标图像出现在视图的正确位置。这也使我认为这种观点不应受到指责。
我在启动图像视图中使用的 UIImage 在应用程序的其他地方使用,并且在其他视图中看起来很好(徽标图像也在应用程序的其他地方使用并且看起来很好)。所以我假设图像是有效的并且让它出现在其他视图中不是问题。
我已经确认 xcassets 文件中 logo 和 splash 的 UIImages 设置是相同的。它们设置为通用、任意宽度和高度、多个比例因子,默认呈现。有一个区别 - 徽标有 1x、2x 和 3x 比例,而初始图像只有 1x 和 2x,但我也尝试在 UIView 中使用只有 1x、1x 和 2x 值的 UIImages 并且它们可以工作(如果它们是前段时间添加到项目中)。
将另一个不同大小或格式(PNG 和 JPG)的图像添加到我的 xcassets 并在 UIImageView 中使用该 UIImage 作为初始图像也无法显示。
将另一个 UIImageView 添加到 XIB 文件并为其分配一个已经在 xcassets 中的 UIImage 工作,图像出现在加载屏幕中。
复制和重命名用于徽标的图像文件并将它们添加到项目中,然后在启动视图中使用该 UIImage 也无法显示。
我已经尝试清理项目,重新启动开发机器,并从 Air 2 中删除应用程序并重新安装,以防万一出现问题。
最后三个步骤让我相信在项目文件生命周期的某个时间点之后添加的图像存在一些问题。虽然我昨天更新到 Xcode 7,但初始图像最初是在 Xcode 6 中添加的,但徽标图像(也在 Xcode 6 中添加)是几个月前添加的。
我查看了徽标图像和启动图像的 json 文件,它们似乎具有相同的格式。我还浏览了 pbxproj 文件以寻找差异,但我看不到任何差异。
所以我想知道是否有人知道为什么启动屏幕可能不会显示我在 Air 2 上添加的这些新图像?我一直在阅读的与未出现的图像有关的其他问题似乎都与启动图像或具有关联类的 XIB 文件中的图像有关,这两者似乎都不相关。