滚动后(swift)混合tableview单元格

时间:2016-07-20 22:02:29

标签: swift tableviewcell reuseidentifier

我制作了一个表格视图,用一些数据填充单元格,效果很好。

问题在于,当我滚动表格时,所有单元格都混合在一起,你知道一种方法可以阻止它吗?

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let celda = tabla_reportes.dequeueReusableCellWithIdentifier("celda", forIndexPath: indexPath) as! celdaReportes
    switch indexPath.section {
    case 0:
        celda.datos = tipos
        celda.back = UIColor.lightGrayColor()
    case 1:
        celda.index = indexPath.row
        celda.datos = fillArrayWithData(datos[indexPath.row] as! NSDictionary)
        celda.back = UIColor.clearColor()
    default:
        break
    }
    celda.delegate = self
    return celda
}

2 个答案:

答案 0 :(得分:0)

因为细胞被重复使用以提高性能。例如,当您向上滚动tableview并且数字1单元格消失时,数字10单元格实际上是您的1号单元格。无论你在1号单元格中设置什么,并且未更新的值都保留在10号单元格中,依此类推......如果没有值,请尝试在单元格内放置一个空白值。

答案 1 :(得分:0)

你应该更新单元格的字段。也许你在这里UITableViewCell reuse good practice可以帮助你