tableView reloadSections和reloadData空格和单元格移动到错误的部分

时间:2014-09-12 07:20:46

标签: ios uitableview sections

问题是:当我执行reloadSections时,一个部分的最后一个单元格将跳转到下一个部分的第一个单元格,即使cellForRowAtPathIndex无法在那里加载此单元格(thouogh我做了检查并且它正在对该单元格进行dequeing ,然后更新它,并且将有一个空的空白区域(有时),其中一个单元格应该在上一节中。如果我运行reloadData,我的整个表格会变白,直到我稍微滚动一下它有时会起作用。背景资料:

我有一个表视图,它显示每个部分有几行的数据。在背景中,下载可能会完成,这可能会也可能不会更新每个部分中的行数和行中包含的数据。行是不同的高度,这对于“reloadData”调用来说是昂贵的,所以我不希望每次新数据到达时都执行(只有一个部分可以更新)。

因此,当我开始显示单元格时,我所做的是检查该部分的下载是否已完成,如果有,则重新加载该部分。如果该部分已更新,我也会检查其他部分(因为它经常一起下载部分),并更新所有部分。

好的,这是问题所在。我运行这样的东西(缩写为简单/在工作中没有我的确切代码):

[tableView beginUpdates];
for (int i = 0; i < numSections; i++)
{    
    if ([self sectionNeedsUpdate:i])
    {
        [self updateNumberOfRowsInSection:i]; //if Needed
        [tableView reloadSections:[NSArray arrayWithObject:i] withRowAnimation:UITableViewRowAnimationNon];
    }
}
[tableView endUpdates];

我的想法是我单独更新每个部分,但所有5个部分都可以在该循环中更新。或者只是第1/3节等等。为什么一个单元格会跳到下一部分?那些reloadSections调用是否在自己的线程中运行并且同时对彼此出列?

0 个答案:

没有答案