我正在尝试从我的启动屏幕中获得一个图像来显示为启动屏幕。故事板文件,但图像从不显示。我有标签显示良好,但图像不出现。

这是启动屏幕在启动屏幕中的外观。故事板文件:

然而,当我在模拟器(以及物理设备)上运行应用程序时,显示如下:

如您所见,标签“Test”显示良好,但图像没有显示。我真的不知道为什么会发生这种情况,我尝试的任何方法似乎都不起作用。如果任何人有任何关于如何解决这个问题的想法,这将是非常感激的。


当前回答

在我的情况下,重置模拟器的内容和设置解决了这个问题。

其他回答

我尝试了很多东西(这个线程似乎有一百万个想法,其中一半是相互冲突的)。我的问题是,当我重新启动设备和Xcode时,它会导致图像在应用程序的几个会话中显示,然后它会停止(我不知道为什么,但哇,这很烦人)。

过了无数个小时,我发现a。g的答案是正确的。我做错的一件事是我在xcassets中创建了一个新的图像集,但我仍然在使用故事板中的UIImageView中的图像名称,而不是使用图像集的名称。

为了澄清,你要做的是创建一个新的图像集,并将其命名为“Launch-Defaults”,然后将你的图像添加到它。然后,在故事板的UIImageView内部,你使用图像“Launch-Default”(不包括扩展,因为没有,因为这是一个图像集)。

When you do all of that, the image should actually appear correctly inside of your storyboard. Some people say the image will display blank if you don't use the extension (.jpg or .png), but I assume that is because they are not using the name of the image set. Others say you need to use an extension like .png or .jpg, but the key is to create the image set inside of xcassets and then use that image set inside of the storyboard. When done correctly, there should be no funkiness like an image not showing up or the Launch Screen only working some of the time (requiring a reboot).

xCode中的资源缓存似乎有一些问题。有同样的问题,重新启动xCode和一切工作正常之后。

对我来说,这不仅仅是重启设备那么简单。 我的发射图像存储在其他资产(其他Pods)。

不得不将图像移动到应用程序项目的资产。 然后重启了我的设备。(首先检查模拟器,它应该工作)。 然后就成功了。

图片可以是png/pdf格式,单比例或不重要。

在我的案例中有两个问题解决了它:

似乎有1MB的图像大小限制;没有文档,但当我优化相同的图像从3MB到1MB以下,它工作。这是有意义的,因为操作系统希望启动屏幕尽可能轻。 操作系统确实积极缓存启动屏幕!为了看到我的启动屏幕变化,我必须每次重置模拟器:Device > Erase所有内容和设置

在我的例子中,启动画面适用于模拟器和其他设备,但不适用于某一特定设备。这让我相信这是xcode (v10和iPhone 7 v12.1)保存的一些缓存数据。

我在~/Library/Developer/Xcode/DerivedData/删除了派生数据,只清空文件夹内容,而不是删除文件夹。然后我重启了mac和iPhone,清理并重建了这个项目,现在它出现了。

我不确定所有这些是否都是必要的,但我不想浪费更多的时间来缩小范围,所以上面的大锤方法对我来说很有效。当然,这总是取决于你的具体情况——我的是特定设备;对于其他人来说,它可能是实际的图像或启动屏幕布局等。