我有一个支持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模拟器上进行了测试,图像在所有这些模拟器上都显示正确。

我运行了一些基本的故障排除,看看我是否能找出发生了什么,但我还没能解决它,我能看到的图像之间的唯一区别是,工作和一个失败的是,当我添加到资产…

以下是我所知道的:

The UIImageView for the splash image is in the correct place, at the correct size. I can tell this because I set its background color to green just to make sure. The view is there, but the image does not appear. So I'm assuming that the view is not to blame. Setting the UIImageView for the splash image to also use the logo image makes the logo image appear in the correct place for the view. This also leads me to assume that the view is not to blame. The UIImage that I am using in the splash image view is used elsewhere in the app and appears fine in those other views (the logo image is also used elsewhere in the app and appears fine). So I'm assuming that the image is valid and having it appear in other views is not a problem. I've confirmed that the settings of the UIImages for the logo and splash in the xcassets file are the same. They are set to Universal, Any width and height, multiple scale factors, rendered as default. There is one difference - the logo has 1x, 2x and 3x scales while the splash image only has 1x and 2x, but I have also tried using UIImages with only 1x, and 1x and 2x values in the UIView and they work (if they were added to the project some time ago). Adding another image of a different size or format (PNG and JPG) to my xcassets and using that UIImage in the UIImageView for the splash image also fails to display. Adding another UIImageView to the XIB file and allocating it a UIImage that was already in the xcassets works, the image appears in the loading screen. Copying and renaming the image files used for the logo and adding them to the project then using that UIImage in the splash view also fails to display. I have tried cleaning the project, restarting the development machine, and deleting the app from the Air 2 and reinstalling it just in case that was a problem.

这最后三个步骤使我相信,在项目文件生命周期的某一点之后添加的图像存在一些问题。当我昨天更新到Xcode 7时,splash图像最初是在Xcode 6中添加的,但logo图像(也添加到Xcode 6中)是在几个月前添加的。

我已经查看了logo图像和splash图像的json文件,它们似乎具有相同的格式。我还浏览了pbxproj文件,寻找不同之处,但我找不到任何不同之处。

所以我想知道是否有人知道为什么我在Air 2上添加的这些新图像在启动屏幕上不显示?我一直在阅读的其他有关未出现图像的问题似乎都与Launch images有关,或与XIB文件中具有关联类的图像有关,这两个问题在这里似乎都不相关。


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

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

我不知道为什么它不起作用,但我找到了一个解决方案: 只需将文件放在图像之外即可。xcassets并在Interface Builder中使用它的全名(带扩展名)

希望这对你有所帮助!


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


把它关掉,然后再打开。

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

以下是不起作用的方法:

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

年长的观察:

就像其他的一样,它:

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

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

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

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

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

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


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


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


我在TestFlight上安装了同样的应用。 删除应用程序->,然后重新启动iPhone ->,然后重新安装应用程序为我工作。 只是重新安装应用程序或重新启动设备没有帮助。


我的解决方案是确保在故事板中UIImageView的“清除图形上下文”框是未选中的。只要改变一下,我就能解决问题。” 没有其他的解决方案对我有效。 从苹果开发者论坛上得到的


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


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

什么没有做到:

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


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


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

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

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

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

背景

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

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

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

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

/ Library / Caches Snapshots / < < app_bundle > > /和 / Library / Caches Snapshots / < < app_bundle > > downscaled /。

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

解决方案

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

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

在启动时在你的UIImageView对象中引用那个图像 屏幕故事板文件…


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


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

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


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


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


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

这对我很管用。


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

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


这太重要了 一定是空的!启动画面文件


对我有帮助的是:

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

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


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

我通过:

移除驱动器数据 清理项目 重启Xcode 从我的设备中删除项目 重新启动5s。

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


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


选择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”来自项目。

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

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

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

解决我问题的方法:

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


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


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

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

看来@2x和-568h都是问题的一部分。 这在-812h@3x设备上是有道理的。


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

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


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


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


解决了!

对我来说唯一管用的就是从LaunchScreen中删除ViewController。并创建一个新的ViewController set为

是初始视图控制器

就这么简单:)


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