我有一个 JSON ,其中包含 Project的一个本地文件夹中的图像路径,如下所示
问题是我想从该路径获取图像,我该如何实现?
我曾尝试将字符串转换为URL ,并使用 Kingfisher Library
将URL设置为Imagelet 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文件,我需要在本地使用
答案 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。 如果您仍然不明白,请告诉我。