当我从服务器获取新数据时,我需要:
- 更新现有行的现有数据
UITableView
和 - 插入带有动画的新行。
问题是我不知道第 1 步[UITableView reloadData]
何时完成,所以我可以开始第 2 步。
如何处理这种情况?
为简单起见,我更喜欢使用第1 步[UITableView reloadData]
,但在一个逻辑步骤中实现这两个步骤的任何其他解决方案也很酷。
更新- 也许这是我的错误。
看来
-使用现有行信息更新数据模型
-重新加载数据
-使用新行信息更新数据模型
-insertWorsAtIndexPaths
现在工作正常。
我删除了一些在第 1 步后强制主线程刷新的“丑陋”方式,现在一切正常
(“丑陋的方式是调用 [NSRunLoop currentRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:0.0f] ,出于某种原因我需要将它添加到过去的工作中)
想知道..如果现在一切都很好。如果仍然有问题,将更新。给您添麻烦了:)
更新 2
这就是我现在使用它的方式,并且似乎可以正常工作:
-更新数据模型中的现有行,然后调用
[UITableView reloadData];
- 向数据模型添加新行,然后调用
[UITableView beginUpdates]
[UITableView insertRowsAtIndexPath withRowAnimation]
[UITableView endUpdates]