如何从本地图像路径Ios Swift 4加载图像

时间:2018-06-19 12:22:01

标签: ios json swift image url

我有一个 JSON ,其中包含 Project的一个本地文件夹中的图像路径,如下所示

enter image description here

问题是我想从该路径获取图像,我该如何实现?

我曾尝试将字符串转换为URL ,并使用 Kingfisher Library

将URL设置为Image
let url = URL(string: "/VWiOSProjects/CollageMakerDemo/Development/CollageMaker/CollageMaker/Goodies.xcassets/Goodies-1.imageset/Goodies-1.png")!

cell.imgTool.kf.setImage(with: url)

但是我也尝试过这个

let url = URL(string: "/VWiOSProjects/CollageMakerDemo/Development/CollageMaker/CollageMaker/Goodies.xcassets/Goodies-1.imageset/Goodies-1.png")!

let imageData:NSData = NSData(contentsOf: url)!
let image = UIImage(data: imageData as Data)

cell.imgTool.image = image

注意:我无法在服务器上上传此JSON文件,我需要在本地使用

3 个答案:

答案 0 :(得分:2)

如果图像位于Assets(*.xcassets)文件夹中,则可以通过init(named:)方法访问它。

cell.imgTool.image  = UIImage(named: "img1")

实际上,您不需要存储整个路径。您可以将图像名称存储在数组中。


我认为,最好的方法是将“所有图像”添加到*.xcassets文件夹中。(因为您已预加载5-10张图像)

如果您需要在集合视图或TableView中显示它,

let imageName = "Goodies-\(indexPath.row)"
cell.imgTool.image  = UIImage(named: imageName)

答案 1 :(得分:2)

我已经使用 fileURLWithPath

解决了我的问题
let url = URL.init(fileURLWithPath: "/VWiOSProjects/CollageMakerDemo/Development/CollageMaker/CollageMaker/Goodies.xcassets/Goodies-1.imageset/Goodies-1.png")

let imageData:NSData = NSData(contentsOf: url)!

let image = UIImage(data: imageData as Data)

cell.imgTool.image = image

答案 2 :(得分:0)

如果图像位于资产文件夹本身中,则使用@Lal Krishna的方法。如果它们在服务器上,则应添加http://或https://以及服务器的URL,然后是JSON的URL。 如果您仍然不明白,请告诉我。