在视图控制器启动期间,我用insertSectionsinsertRowsdeleteRows等执行了一堆行/节插入和删除操作。这些操作是由后台进程的事件触发的(当然,对表视图的实际调用是在主线程上执行的;它们也包装在beginUpdatesendUpdates中)。


当我开始使用viewWillAppear中的这些行操作时,由于行数据attempt to delete row 1 from section 0 which only contains 1 rows before the update中的不一致,最终导致崩溃。发生这种情况时,更新之前的部分实际上有2行,显然表视图无法正确识别该行。
但是,当我在viewDidAppear中开始完全相同的操作序列时,不会发生崩溃,并且行会按预期进行动画进出。


看起来表视图在插入和删除之前快速运行序列时出现问题。这是已知限制吗?或者您对此问题有其他解释吗?

最佳答案

看起来您不需要操纵实际的UITableViewCells,可以操纵某种视图模型(普通对象),准备它们,然后在viewWillAppear上重新加载UITableView

09-30 22:09