我在一个屏幕上有一个 UITableView,其中底层数据源的结构可能会发生变化——而不仅仅是单个单元格。
如果我在同一个 UITableView 上执行此操作,然后调用 reload,我会收到表结构已更改的错误(例如不同的行数、节数等)
这是我得到的错误:
*由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无效更新:无效的节数。更新后表视图中包含的节数(1)必须等于更新前表视图中包含的节数(21),加上或减去插入或删除的节数(0插入,0已删除)。
我真的必须通过删除所有部分然后添加新部分来更改我的表吗?
所以基本上我的问题是如何正确地做到这一点。我可以通过编程方式创建一个新的 UITableView,使用初始表中的 rect、bkgnd 颜色、委托和数据源——但我在 IB 中设置的所有约束都将丢失用于新表。
如何从旧表中获取所有这些约束并将它们提供给新表?
即使我只是设置了一个新的数据源,我也会收到上述错误。只有当我使用新的数据源创建新的 UITableView 时,我才不会收到上述错误。
或者是否有另一种方法来重置具有完全不同的底层数据的 UITableView,同时保持其所有 UI 属性和约束不变?