我的表视图在行的didselect上向表视图添加/删除单元格,在此期间,如果发生表重新加载,这会将新数据集设置在数组的节数内,从而导致更改所有单元格索引,并且cellForFow:atIndexPath上的应用程序崩溃:导致索引didselect中的选定行已更改。
如何延迟新的表重新加载事件,直到完成以下单元格插入:
[self.tableView beginUpdates];
[self.tableView insertRowsAtIndexPaths:ipsArray
withRowAnimation:UITableViewRowAnimationBottom];
[self.tableView endUpdates];
答案 0 :(得分:0)
我解决了以下问题: 在下面的UIView块中重新加载表,并使用布尔值isTableReloading变量来跟踪表重新加载。
[UIView animateWithDuration:0.5 animations:^{
weakSelf.isTableReloading = true;
[weakSelf.tableView reloadData];
} completion:^(BOOL finished) {
weakSelf.isTableReloading = false;
}];
在上述重新加载之间,如果用户点击一个表格单元格并且isTableReloading == true,则延迟didSelect方法,或者在您的应用允许的情况下忽略该调用。