滚动时,TableView单元格会发生变化

时间:2016-02-27 09:17:35

标签: ios objective-c swift

我理解单元格正在被重用,因此当再次呈现单元格时,我的if语句出现问题。但我不明白为什么if语句会在向上滚动时导致单元格发生变化。

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = self.tableView.dequeueReusableCellWithIdentifier("ExploreTableViewCell", forIndexPath: indexPath) as! ExploreTableViewCell

    // Configure the cell
    let rowIndex = self.dataArray.count - (indexPath.row + 1)
    let newsRowObj = self.dataArray[rowIndex] as NewsHeadline
    cell.newsTitle.text = newsRowObj.source

    if (newsRowObj.source == "reddit") {
        cell.newsTitle.textColor = UIColor.redColor()
    }
    return cell
}

source == "reddit"文本设置为红色时。但当我向上滚动时,细胞随机变红。

2 个答案:

答案 0 :(得分:2)

这是因为您正在重复使用某些“reddit”单元格而不处理新单元格没有处理的情况。您需要在将else设置回原始颜色的位置添加textColor处理。

答案 1 :(得分:0)

==