gpt4 book ai didi

ios - Swift3 - UIImageView 未出现在已解析的 JSON 数据中

转载 作者:行者123 更新时间:2023-11-28 21:07:53 25 4
gpt4 key购买 nike

嘿伙计们会喜欢我的第一个问题的一些帮助。我花了很长时间浏览论坛,但仍在努力理解我哪里出了问题。 URL 字符串从 JSON 中解析得很好,但是它没有在我创建的 UIImageView 中显示为图像。代码编译正常,其他一切都在显示。我假设我必须将类型为 String 的 URL 转换为 UIImageView 但是我不断收到错误。

这是 EventCell 类的片段。

class EventCell: UICollectionViewCell {

var event: Event? {
didSet {

if let eventName = event?.title {
eventTitle.text = eventName
}

eventSubtitle.text = event?.subtitle

eventTags.text = event?.tags

if let imageName = event?.imageURL
{
imageView.image = UIImage(named: imageName)
}
}
}

override init(frame: CGRect) {
super.init(frame: frame)

setupViews()
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}


let imageView: UIImageView = {
let iv = UIImageView()
iv.translatesAutoresizingMaskIntoConstraints = false
iv.contentMode = .scaleAspectFill
return iv
}()

这是 Event 类本身的片段。

var id: NSNumber?
var title: String?
var imageURL: String?
var subtitle: String?
var tags: String?
var desc: String?

override init(){}

init(event: NSDictionary)
{
if let val = event["ID"] as? NSNumber
{
id = val;
}

if let val = event["Title"] as? String
{
title = val;
}

if let val = event["Subtitle"] as? String
{
subtitle = val;
}

if let val = event["Tags"] as? String
{
tags = val;
}

if let val = event["Description"] as? String
{
desc = val;
}

if let val = event["image"] as? String
{
imageURL = val;
}
}

任何帮助将不胜感激!谢谢!

最佳答案

初始化程序 UIImage(named:) 需要已存储在包中的图像的名称。在您的例子中,您想从 URL 加载图像。您应该做的是从 String 创建一个 URL,然后将该 URL 的内容加载为 NSData 并最后从那个 Data 创建一个 UIImage。实现这一目标的最快方法是

if let imageURLString = event?.imageURL {
let imageURL = URL(string: imageURLString!)
let imageData = NSData(contentsOf: imageURL!)
imageView.image = UIImage(data: imageData as! Data)
}

注意

需要注意的几点

  • 这不是从 URL 加载图像的最佳方法。您还应该查看 async 请求。但是,这是最快的实现方式,应该可以使代码正常工作
  • 该代码段采用 Swift 3 语法。我假设您可以将它转换为 Swift 2 如果您正在使用它

关于ios - Swift3 - UIImageView 未出现在已解析的 JSON 数据中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771424/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com