ios - 使用 UIImage 获取图像的 Assets 目录路径(contentsOfFile :)

标签 ios swift

当您将图像从桌面拖动到 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.pngmyFile@2x.pngmyFile@3x.png,那么当您使用您的代码时,正确的事情就会发生已经显示了名称 "myFile.png"

关于ios - 使用 UIImage 获取图像的 Assets 目录路径(contentsOfFile :),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53964125/

相关文章:

objective-c - 无法使用 ABNewPersonViewController 在通讯录中显示

ios - 如何同时对多个对象应用动态行为

swift - 为什么总是输入条件语句时这个变量没有初始化?

ios - 如何在 iOS 10 中使导航栏透明

iphone - 将 BOOL 值发送到 iOS/iPhone 上的片段着色器 OpenGL ES 2.0

iphone - NSURL 添加参数到 fileURLWithPath 方法

ios - 如何将背景图像添加到在 iOS 中动态创建的 UItable 单元格

ios - 无法在 WKWebView Swift 4 中加载本地 html 文件

Swift - 使函数类型显式(在协议(protocol)中)

ios - 我目前正在检查 UIAlertController 是否存在以确定正在使用的操作系统版本。有没有更有效的方法来做到这一点?