UIImageView在设备的启动屏幕中缺少图像

我有一个支持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文件中具有关联类的图像有关,这两个问题在这里似乎都不相关。

82093 次浏览

我在iPhone 6上也遇到了同样的问题。

非常奇怪的事实是,我可以使用我的图像中的另一个图像。Xcassets有相同的大小,压缩,颜色空间…

我不知道为什么它不工作,但我找到了一个解决方案: 只需将文件放在图像之外即可。xcassets并在Interface Builder

中使用其全名(带扩展名)

splashScreen in storyboard sample

希望这对你有所帮助!

我在iPad和iPhone设备的Xcode 7中也遇到了同样的问题。尽管这没有任何意义,但我在大多数情况下都能够绕过它,方法是将图像视图中的Image以及高亮图像设置为images.xcassets中的同一图像。

把它关掉,然后再打开。

说真的,重启设备——这就是我解决问题的方法。

以下是不起作用的方法:

  • 清洁DerivedData。
  • 清理项目。
  • 从设备上卸载应用程序。
  • 重新启动Xcode。
  • 重新启动计算机。

年长的观察:

就像其他的一样,它:

  • 在模拟器中工作良好
  • 曾在iPhone 5S、iPad Air等设备上工作
  • 没有代码更改(通过git reset -hard HEAD验证),但停止工作。

我记得触发它停止工作的第一个构建是在iPhone运行时拔掉电源。(不确定这是否相关。)

然而,git重置没有修复它(结合所有干净的步骤不工作)告诉我这必须被缓存到其他地方。很有可能在某个。gitignored文件中?(我正在使用Git忽略Xcode项目的文件)

有一种解决方法适用于一个UIImageView(在有三个UIView的UIView中),但不适用于其他UIView,那就是将图像放入.xcassets文件中。恢复到普通图像文件并不能撤消修复。(真的感觉像是缓存错误。)

更新:见顶部重新启动设备是什么修复它。我感觉设备本身缓存了错误的位图数据。

雷达:http://openradar.appspot.com/23534818

我也看到了同样的问题。重新启动设备(iPhone 6)并重新构建应用程序到设备是唯一修复它的方法。我尝试了许多其他的技巧和建议,但都不起作用。只有重启+重建才有帮助。

我也遇到了同样的问题,但重新启动设备并没有帮助。对我来说有用的是从我的启动故事板中删除UIImageView并添加一个新的。

我从TestFlight安装了相同的应用程序。 删除app ->,然后重新启动iPhone ->,然后重新安装app适合我。 只是重新安装应用程序或重新启动设备并没有帮助
我的解决方案是简单地确保在故事板中的UIImageView的“清除图形上下文”框是未选中的。只要改变一下,我就能解决问题。” 没有其他的解决方案对我有效。 从苹果开发者论坛

得到它

enter image description here

你试过关机再开机吗?这样做。

重启Xcode帮我解决了这个问题。

做了什么:

  • 清洁构建文件夹
  • 重新启动设备或模拟器(图像都不可见)

Image.xcassets中取出图像,并再次将它们添加到项目中。这对我很管用。

许多其他答案建议重新启动设备和/或重建和/或重新安装是解决方案。

虽然这些答案对我们中的一些人有用,但它们起作用的原因是应用程序被迫“重拍”或“重建”缓存的快照。

应用程序使用缓存快照在支持数据加载到内存之前呈现图像,包括包含故事板图像的资产目录。

@jaga的这就是答案提供了解决方案,但不是原因,至于为什么UIImageViews在设备上的启动屏幕中缺失(但在模拟器中没有)。

背景

最近,我尝试在“启动屏幕”中使用自定义字体。故事板”文件。

在阅读@TimCamber的这个SO答案后,我无法弄清楚原因,这促使我做了更多的研究和测试。

自定义字体没有包含在我的启动屏幕故事板文件中的原因与资产目录中的图像没有包含的原因相同……

该应用程序准备肖像&应用程序的启动屏幕的景观快照从你的启动屏幕故事板文件,(目前)保存在你的应用包这里:

  • /Library/Caches/Snapshots/<<app_bundle>>/
  • /Library/Caches/Snapshots/<<app_bundle>>/downscaled/

这个过程在加载任何支持文件(包括任何自定义字体和资产目录)之前完成。

解决方案

正如上面提到的@jaga的解决方案,字面上所需要的是:

  1. (老派)添加一个图像文件(.PNG)到你的应用程序的包(正如你可以从下面的截图看到的,我添加了图像子目录下的支持文件子目录下的图像文件),和

 Project Navigator in Xcode中的相关目录截图

    在启动中引用UIImageView对象中的图像 .

截图of ImageView section for UIImageView under Attributes Inspector in Xcode .

我有同样的问题imageView启动屏幕故事板。我从项目中删除了图片的引用,我重命名了我的图像,并再次添加到项目中。一切都很完美。

这似乎是iOS的一个bug。比如有时候系统动画会消失。

现在我只要重启iPhone,它就为我工作了。

在我的情况下,我只是去应用程序目标->通用->应用程序图标和启动图像->启动图像源 然后选择源我把图像 希望这将帮助你

对我来说,问题是我的启动屏幕的大小相差了1个像素(2209x1242而不是2208x1242)。纠正错误,然后重新启动设备并重新构建应用程序会有所帮助。

也可以1。删除项目镜像2。3.修改镜像名称。将文件图像添加到项目

这对我很管用。

以下操作顺序为我修复了Xcode 7.3.1和iOS 9.3.4上的问题:

  1. 清洁你的构建(⌘+ +K)
  2. 关闭Xcode
  3. 硬复位iOS设备(电源+ Home键重启)
  4. 重新启动Xcode -让索引完成并在设备上构建,一旦它准备好了。

这太重要了 必须是!Launch Screen File < / p >

enter image description here

对我有帮助的是:

  • 将“启动屏幕文件”更改为另一个xib
  • 运行应用程序
  • 把xib改回来

也很重要:检查your is xib是否在另一个标签中打开,这也可能导致它!

我使用的iPhone 5s设备,也遇到了这个问题。

我通过:

  • 移除驱动器数据

  • 清理项目

  • 重启Xcode

  • 从我的设备中删除项目

  • 重新启动5s。

我认为Xcode使用内存有问题,系统可能分配了一些内存给Xcode,导致Xcode绘制午餐图像失败(在我的电脑上,Xcode已经运行了几个星期没有关闭)

对我有用的是从模拟器菜单中选择重置内容和设置…

Reset content and Settings menu

选择ImageView,然后在属性检查器选项卡中删除图像扩展名(.png或.jpg) >图像视图>图像>图像名称。

launchscreen。故事板图像不会出现,但它会在设备中。这对我很管用。

我认为启动屏幕只支持Assets.xcassets中的图像。

我在iPhone 6的iOS 10和模拟器中都遇到了这个问题。我的照片在一个文件夹里,这似乎是问题所在。我从Xcode文件夹中删除了图像,并将其放在项目的基本目录中,这解决了问题。

我也有同样的经历。我把图像分辨率从300像素/英寸改为72。这对我很管用。

我找到了一个简单而彻底的解决方法:

1 -删除文件:LaunchScreen。故事板,并移动到垃圾。

2 -产品->清洁

3 -创建一个新的启动屏幕文件:LaunchScreen。故事板,把你的图片放进去

4 -保存和构建

在尝试了几个小时的复杂方法后,这对我来说很有效……似乎我的启动屏幕。故事板被写入锁定,无法保存,或者一个奇怪的缓存进程阻塞了它。

这对我很有效。

首先在xcode清洁项目。

如果您使用模拟器,请删除应用程序并重新启动。

如果您正在使用设备,请删除app并重新启动设备。

“myProject”包含许多从images .xcassets中初始化的图像。但在删除和恢复“资产”后,我遇到了丢失的图像。Xcasset”来自项目。

  1. 删除图片。Xcassets偶然,但是
  2. 添加图片。xcassets返回“myProject”

我遇到了这个缺失图像的问题,并尝试了以下方法:

  1. 回收设备电源,但不工作。
  2. 使用Xcode在“清理”后“构建”项目,它也不起作用。

解决我问题的方法:

  1. 在图像中添加了每一个图像。xcassets回到“myProject”通过Xcode在“目标成员”在“显示在文件检查器”,它恢复正常。

从左边的菜单选择你的图像文件,从右边的工具菜单选择“显示文件检查器”。在目标会员下,确保你的目标已被选中。我添加了选择目标的图像,但我不知道为什么它没有被选择。我尝试了所有的解决方案,重新启动,删除等,没有一个工作。这个方法奏效了。希望它能帮助到其他人。

在我的情况下,我是图片的名字 我添加了一个名为Default-568h@2x.png的图像到LaunchScreen。Xib -我的一个旧的启动屏幕,只是为了测试目的。我是在iPhone X模拟器上创建游戏,图像并没有显示出来。< / p >

将名称更改为中性的名称(MyImage.png)解决了这个问题。

似乎@2x-568h都是问题的一部分。 这在-812h@3x设备上是有意义的

我的解决方案@iOS 11.x:

  • 使用.jpg图像代替.png。我认为图像文件大小很重要;
  • (可选)将图像文件放在项目目录而不是.xcassets;

简单的解决办法就是用JPG代替PNG。

图像名称是问题所在。 重命名在启动屏幕故事板中使用的图像名称。 确保不要使用字母数字以外的任何字符(不要使用“_-&@”)

解决了!

唯一对我有用的是从LaunchScreen.storyboard中删除ViewController并创建一个新的ViewController set to

是初始视图控制器

就这么简单:)

从手机中删除应用程序,然后重新启动手机并再次安装应用程序。现在问题将得到解决