无法将 PNG 图像加载为 UIImage

Cannot load PNG image as UIImage

我正在尝试将位于我的 XCode 项目中的 .PNG 图像加载为 UIImage - 但是 UIImage 的构造函数采用文件名 returns nil.

请查看我的设置截图:

以下是一些详细信息:


编辑: 根据 this blog 原因可能是工作区设置 - 更准确地说是框架正在加载图像。不确定,但由于缺乏更好的想法,我会遵循这条轨道。如果您能对此事有所了解,我将非常感谢任何想法。

在您的项目资源管理器中,我可以看到图像没有正确命名。 应该是这样的:

imagePlaceHolder.png
imagePlaceHolder@2x.png

注意文件名末尾的 png 和文件扩展名前的 @2x。

这些是 images.xcassets 的一部分吗?如果不是,则必须使用 NSBundle 读取它们并获取资源的 path/URL 和所有这些以及一个简单的文件名是不够的。

您可以根据 Apple 文档将文件添加到资产中 here。相关部分可能是 'Adding Image Sets' 一节。

如果您没有 images.xcassets,您可以根据给定的答案之一将其添加到您的项目中 here

问题是由于从资源中加载图像的代码驻留在框架中造成的。主包中不包含框架的资源,需要使用相应的包。工作代码:

private let imagePlaceholder = UIImage(named: "ImagePlaceholder.png", inBundle: NSBundle(forClass: CarretMoveController.self)