【发布时间】:2017-07-17 19:06:45
【问题描述】:
我在运行时下载了一个资源。图片位于“caches”目录中的某个子文件夹中。
当我知道文件的路径时,如何将图像加载到 UIImage,图像是“PNG”类型,但它没有扩展名?
我看不到任何将文件类型作为参数的 UIImage 构造函数,所以我认为这可能很棘手
【问题讨论】:
我在运行时下载了一个资源。图片位于“caches”目录中的某个子文件夹中。
当我知道文件的路径时,如何将图像加载到 UIImage,图像是“PNG”类型,但它没有扩展名?
我看不到任何将文件类型作为参数的 UIImage 构造函数,所以我认为这可能很棘手
【问题讨论】:
因为你的文件已经下载了
let path = "theFilePath"
if let data = NSData(contentsOfFile: path) {
let image = UIImage(data: data as Data)
}
【讨论】:
不,这并不难,只需先加载数据。
这里的cacheURL 是文件的NSURL。
NSError *error = nil;
NSData *data = [NSData dataWithContentsOfURL:cacheURL options:NSDataReadingMapped error:&error];
现在您可以检查文件是否可以加载:
if (data) {
image = [UIImage imageWithData:data];
}
代码在 Objective-C 中,因为我刚刚从一个旧项目中复制,但应该很容易转换为 Swift。
【讨论】: