如何在滚动时避免可重复使用的自定义单元格覆盖数据?

时间:2016-06-29 11:15:21

标签: ios swift

这是我正在使用的代码,它工作正常,直到我在表格视图中滚动,单元格相互覆盖并且所有repostedFromLabel都被隐藏。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

    let cell = tableView.dequeueReusableCellWithIdentifier("FeedsTableViewCell", forIndexPath: indexPath) as? FeedsTableViewCell

    if (arrayofPostsFeed[indexPath.row].postedByUser!.nickName!) != arrayofPostsFeed[indexPath.row].ownedByUser!.nickName! {
        cell!.repostedFromLabel.text! = "Reposted From \(self.arrayofPostsFeed[indexPath.row].postedByUser!.nickName!)"
    } else {
        cell!.repostedFromLabel.hidden = true
    }
}

我应该如何阻止可重复使用的单元格覆盖彼此?

2 个答案:

答案 0 :(得分:1)

您可以在FeedsTableViewCell中实现prepareForReuse函数以重置repostedFromLabel的隐藏属性。像这样:

override func prepareForReuse() {
    self.repostedFromLabel.hidden = false
}

目前您没有重置该值,因此在重复使用单元格时会混淆。

答案 1 :(得分:0)

       func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = tableView.dequeueReusableCellWithIdentifier("FeedsTableViewCell", forIndexPath: indexPath) as? FeedsTableViewCell
    if (arrayofPostsFeed[indexPath.row].postedByUser!.nickName!) != arrayofPostsFeed[indexPath.row].ownedByUser!.nickName! {
        cell!.repostedFromLabel.text! = "Reposted From \(self.arrayofPostsFeed[indexPath.row].postedByUser!.nickName!)"
        cell!.repostedFromLabel.hidden = false
        }else {
        cell!.repostedFromLabel.hidden = true
        }