刷新表格时如何取消我的UITableViewCell实例?

时间:2016-05-03 18:54:47

标签: ios swift uitableview

当我刷新我的桌子时,我想要所有以前的细胞去掉(但它没有发生)。我很确定我没有任何参考资料。

这是我的刷新方法:

apiClient.listUsersNow(start, num: num, filter: filter) {  [weak self] (response) -> Void in
        if self != nil && response != nil && response["status"] == "success"{
            self!.items = [] //data source
            self!.tableView.reloadData()
            for(_, stuff): (String, JSON) in response["data"]["results"]{
                if let user_id = stuff["id"].int {
                    self!.items.append(user_id)
                }
            }
            self!.tableView.reloadData()
        }
        callback()
    }

我的印象是,当我致电reloadData()时,旧单元格应该自行退出,并且我需要手动执行此操作。

显然我错了......在重新加载数据之前,我是否必须遍历每个单元格并调用cleanupCell()

1 个答案:

答案 0 :(得分:1)

您不必做任何事情,因为tableview单元格需要分配/取消分配单元格。 tableview维护一组单元格并根据需要重用它们。您需要做的就是在tableview数据源方法dequeuereusablecellwithidentifier中使用cellforrowatindexpath。或者,您也可以手动创建它们,但如果您没有strong对它们的main引用,它们会自动解除分配。