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