循环中的tableView reloadData没有在每次传递中绘制单元格

时间:2017-11-29 01:16:08

标签: ios swift tableview reloaddata

我在我的应用中的几个地方循环中有一个tableView.reloadData()调用。基本想法是这样的:

let dataSourceArray = []
for arrayItem in anotherArray {
     dataSourceArray.append(arrayItem)
     self.tableView.reloadData()
}

我想要实现的是让tableView在加载到模型数组中时绘制每个单元格。

目前正在发生的是,一旦循环完成,所有单元格都会出现。

这一切都是在主线程中完成的,但是无论如何我都尝试调度到主线程以进行reloadData调用。这没有任何区别。我在reloadData之后尝试了tableView.layoutIfNeeded(),但也没有区别。

在cellForRowAtIndexPath和heightForRow ...方法中放置断点指示循环中每次传递时预期的正常tableView调用。但是由于某些原因,细胞不会在屏幕上绘制,直到完成循环。

是否还有强制tableView在每次传递时绘制单元格而不是我上面尝试过的?

1 个答案:

答案 0 :(得分:0)

我相信原因是因为元素的循环将很快(毫秒)完成,因此您不会注意到增量变化。