下一次重新加载索引更改时,Tableview崩溃

时间:2018-12-28 17:18:37

标签: objective-c uitableview

我的表视图在行的didselect上向表视图添加/删除单元格,在此期间,如果发生表重新加载,这会将新数据集设置在数组的节数内,从而导致更改所有单元格索引,并且cellForFow:atIndexPath上的应用程序崩溃:导致索引didselect中的选定行已更改。

如何延迟新的表重新加载事件,直到完成以下单元格插入:

[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:ipsArray 
                      withRowAnimation:UITableViewRowAnimationBottom];
[self.tableView endUpdates];

1 个答案:

答案 0 :(得分:0)

我解决了以下问题: 在下面的UIView块中重新加载表,并使用布尔值isTableReloading变量来跟踪表重新加载。

[UIView animateWithDuration:0.5 animations:^{
            weakSelf.isTableReloading = true;
            [weakSelf.tableView reloadData];
        } completion:^(BOOL finished) {
            weakSelf.isTableReloading = false;
        }];

在上述重新加载之间,如果用户点击一个表格单元格并且isTableReloading == true,则延迟didSelect方法,或者在您的应用允许的情况下忽略该调用。