我正在寻找一个示例,说明如何根据从JSON响应传递的字符串显示特定的UIImage(保存在资产目录中)。
E.g。如果database_field选择了“Balloons”,它将不会显示单词“Balloons”,而是将其转换为显示图像“Balloons”。
我已尝试使用switch
和case
将String更改为图像,但会收到各种编译错误。
修改
我正在寻找什么,以及我无法工作的东西(因为我是switch
...!的新手)是以下代码:
if let imgType = bug.bugType {
var imgTypeImageName = ""
switch imgType {
case "Ballons":
imgTypeImageName = "Balloons"
break
case "Apple":
imgTypeImageName = "Apple"
break
default:
imgTypeImageName = "default"
break
}
imgIconImage.image = UIImage(named: imgTypeImageName)
}
希望这有助于某人!
答案 0 :(得分:1)
只需使用initializer for UIImage that accepts a string for the image name即可。这是一个示例游乐场。您需要将test.jpg拖入左侧的Resources文件夹中,以使该游乐场正确运行。
import PlaygroundSupport
import UIKit
let jsonData = """
{
"imageName" : "test.jpg"
}
""".data(using: .utf8)!
struct CustomStruct: Codable {
let imageName: String
var image: UIImage? {
return UIImage(named: imageName)
}
}
let custom = try! JSONDecoder().decode(CustomStruct.self, from: jsonData)
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 200, height: 200))
imageView.image = custom.image
PlaygroundPage.current.liveView = imageView