这是我用于UITableView中项目的数据结构:
在将主数组设置为UITableView的数据源之后,我不想使用[tableView reloadData],因为我希望它能够动画,并且在可能的情况下,我想保留用户当前所在的内容偏移量。
我已经有了这个方案,但是我替换了主数组并使用了reloadData。
为了做我想做的事,我尝试从当前数组中删除新主数组中不存在的部分并跟踪该部分索引,以便我可以从beginUpdates
中的UITableView中删除这些索引。
然而,一切都变得非常复杂。添加/删除/移动部分,然后为其中的项目添加/移动部分。我甚至不能完美地对这些部分这样做,因为部分可以添加,移动或者可以完全删除..
在beginUpdates
- endUpdates
中使用的dataSource中完美跟踪位置更改和项目存在的最佳做法是什么,以及真正改变dataSource对象中这些项目的物理存在和位置。
也许我无法清楚地解释它,但总结一下,我想知道更新没有reloadData的表的最佳实践。
编辑1:
请注意:我知道如何检测项目是新的还是更改的。问题是跟踪位置变化(添加,删除或索引/部分更改(移动))