【发布时间】:2017-06-27 02:27:47
【问题描述】:
大家好,我的第一个问题很想得到帮助。我花了很长时间浏览论坛,但仍在努力理解我在哪里出错了。 URL 字符串从 JSON 中解析得很好,但是它没有在我创建的 UIImageView 中显示为图像。代码编译正常,其他一切都在显示。我假设我必须将 String 类型的 URL 转换为 UIImageView 但是我不断收到错误。
这里是 EventCell 类的 sn-p。
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 类本身的 sn-p。
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;
}
}
任何帮助将不胜感激!谢谢!
【问题讨论】:
-
您不能只从 URL 字符串初始化
UIImage。您需要下载图像数据,然后从数据初始化。 -
确保您有一个名为 imageName 的文件。您不能使用外部链接创建图像。
-
用你得到的
error更新问题。还要更新代码 sn-p 你得到error -
您需要先下载带有此 url 的图像,我建议使用 SDWebImage 库来帮助您,然后设置 UIImageView.image = yourDownloadedImage
-
不相关,但
Event中的所有属性都是可选的,为什么要选择绑定每个值?
标签: ios json swift3 jsonparser