我有一个具有tableView的ViewController。 tableView填充自定义单元格。每个自定义单元都有一个显示图像的collectionView(当每个新闻块都有图像时,想象新闻提要结构)。
现在,在一个新闻块中编辑任何内容后,我想刷新该tableView的单个单元格(一个新闻块)。我尝试使用[newsList reloadRowsAtIndexPaths: ... ]
,前提是我确切知道该tableView Cell的indexPath,但问题是当我向下滚动到下一个tableView Cell并在那里进行编辑时,在重新加载第二个Cell后,所有的图像来自第一个新闻块将显示在第二个新闻块中。
是否还有其他方法可以刷新包含CollectionView的自定义单元格?
答案 0 :(得分:0)
我发现自定义单元格有用的东西是创建一个configureCell方法,并在每次为单元格提供新信息时调用该方法。另外要记住的是在prepareForReuse中清除自定义数据以帮助解决重用问题。
class TestCell: UICollectionViewCell {
var myInfo: String? {
didSet {
if let myInfo = myInfo {
configureCell(myInfo)
}
}
}
var label: UILabel?
//intialize the cell somewhere here
func configureCell(info: String) {
label?.text = info
}
override func prepareForReuse() {
super.prepareForReuse()
label?.text = nil
}
}
然后,您可以在任何索引路径中获取单元格并设置新信息。
希望这可以帮到你。