【发布时间】:2010-02-08 20:11:53
【问题描述】:
我有一个通过 JSON 加载的 UITableView。所以我的逻辑是这样的:
- 获取 JSON(NSOperation,回调主线程)
- 在回调中,解析 json,并将新数据插入到我的表的数据源数组中。
- 在 TableView 上调用 reloadData 以显示新数据。
我的问题是:如何动画化表中新行的到来?现在我只是让它们同时出现,我想做的是让它们动画到位,因为这样看起来更酷。
我想我想要的是使用:
[self.theTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];
但这让我在运行时抱怨更新的大小与数据源中的大小不同。
我是否遗漏了有关如何使用该方法的内容?有谁知道有人通过这种模式将新行动画化到 TableView 中的示例?
更新:基本上,感谢 Ben 的指导,我通过以下方法解决了这个问题:
- 从 [self.theTableView beginUpdates] 开始;
- 当我循环遍历 JSON 中的条目时,将它们插入到数组的开头,每次循环都会增加它们的索引。
-
每次循环调用 insertRowsAtIndexPath,如下所示:
NSIndexPath *indexPath; indexPath = [NSIndexPath indexPathForRow:[self.theChatEntries indexOfObject:message] inSection:0]; [self.theTableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:NO];
以循环外的 endUpdates 结束。
呜呜呜。
【问题讨论】:
标签: iphone animation tableview