代码之家  ›  专栏  ›  技术社区  ›  Genericrich

通过JSON更新UITableView,动态插入行

  •  3
  • Genericrich  · 技术社区  · 16 年前

    我有一个通过JSON加载的UITableView。所以我的逻辑是这样的:

    1. 获取JSON(nsOperation,回调主线程)
    2. 在回调中,解析JSON,并将新数据插入到表的数据源数组中。
    3. 在TableView上调用ReloadData以显示新数据。

    我的问题是:如何在表格中设置新行到达的动画?现在,我只是让它们同时出现,我想做的是让它们活跃在适当的位置,因为这样看起来更酷。

    我想我要用的是:

     [self.theTableView insertRowsAtIndexPaths:insertIndexPaths withRowAnimation:UITableViewRowAnimationRight];
    

    但这让我在运行时抱怨更新的大小与数据源中的大小不同。

    我是否遗漏了该如何使用该方法的一些内容?有人知道有人通过这个模式将新行动画化到TableView中的例子吗?

    更新:基本上,我是在本的指导下解决的,方法如下:

    1. 从[self.thetableview beginupdates]开始;
    2. 当我循环JSON中的条目时,在数组的开头插入它们,每次循环都增加它们的索引。
    3. 每次通过循环调用insertrowsatindexpath,如下所示:

      nsindexxpath*索引路径; indexpath=[nsindexxpath indexpathforrow:[self.thecatentries indexofobject:message]索引:0]; [self.thetableview insertrowsatindexpaths:[nsarray arraywithobject:indexpath]withrowanimation:no];

    4. 以循环外的endupdates结束。

    Woot。

    1 回复  |  直到 15 年前
        1
  •  0
  •   Ben Gottlieb    16 年前

    您所处的轨道是正确的;您需要使用[Self.TheTableView BeginUpdates]和[Self.TheTableView EndUpdates]将对-InsertRowsatindexPaths:WithRowAnimation:的调用包装起来。