当您将图像从桌面拖动到 Xcode 中的 Assets 目录中时,您可以使用以下方法在项目中访问该图像:
UIImage(named: "somePNG")
但是如何使用 UIImage(contentsOfFile:)
访问该图像?
if let path = Bundle.main.path(forResource: "somePNG", ofType: "png") {
someImageView.image = UIImage(contentsOfFile: path)
}
上面的代码不起作用。文件检查器中的图像被添加到目标中。我错过了什么?
最佳答案
为什么要使用 UIImage(contentsOfFile:)
而不是 UIImage(named:)
?原因可能是您希望可以从 Assets 目录加载图像而不自动缓存它。你不能。 (我认为这是 Assets 目录工作方式中的一个主要错误。)您必须将图像存储在应用程序包的根级别,就像我们在 Assets 目录存在之前所做的那样。
如果您根据命名约定命名与分辨率相关的文件,例如myFile.png、myFile@2x.png、myFile@3x.png,那么当您使用您的代码时,正确的事情就会发生已经显示了名称 "myFile.png"
。
关于ios - 使用 UIImage 获取图像的 Assets 目录路径(contentsOfFile :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53964125/