我收到一条错误,指出“从ViewController到UIImageView的imageView插座无效。插座无法连接到重复内容”我在故事板上的tableViewCell中添加了一个imageView。我该怎么做才能解决这个问题?
@IBOutlet weak var imageView: UIImageView!
var posts = [postStruct]()
override func viewDidLoad() {
super.viewDidLoad()
let ref = Database.database().reference().child("Posts")
ref.observeSingleEvent(of: .value, with: { snapshot in
print(snapshot.childrenCount)
for rest in snapshot.children.allObjects as! [DataSnapshot] {
guard let value = rest.value as? Dictionary<String,Any> else { continue }
guard let title = value["Title"] as? String else { continue }
guard let downloadURL = value["Download URL"] as? String else { continue }
self.imageView.sd_setImage(with: URL(string: downloadURL), placeholderImage: UIImage(named: "placeholder.png"))
let post = postStruct(title: title)
self.posts.append(post)
}
self.posts = self.posts.reversed(); self.tableView.reloadData()
})
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return posts.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
let label1 = cell?.viewWithTag(1) as! UILabel
label1.text = posts[indexPath.row].title
return cell!
}
}
答案 0 :(得分:5)
您无法为单元格中的重复元素绘制出口。 因此,有两种选择: - 要么创建一个类的单元格,然后你可以在那个类中创建出口。使用Class是最好的选择,因为当出现任何原因没有找到图像的情况时它会很有用。 。
因此,总是喜欢制作单元格的类,然后将值设置为元素。
或者,其他选项是使用标签,这是一个快速修复: -
单击UIImageView
,然后从身份检查器转到标签并设置一些唯一的整数值,即350。
然后在cellForRowAt
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell")
let yourImageView = cell?.viewWithTag(350) as! UIImageView
//Set image to ur yourImageView
return cell!
}