【问题标题】:Reload TableView data with more content after scrolling to end of tableView滚动到 tableView 末尾后重新加载具有更多内容的 TableView 数据
【发布时间】:2012-12-03 06:53:25
【问题描述】:

我在如何在表格视图中重新加载数据方面遇到困难,例如,我正在从服务获得响应,直到计数为 10。现在,如果计数大于 10,我需要获取额外的数据并将该数据重新加载到表格视图中。为了获得更多数据,我有服务要实施。 任何人都可以在这方面提供帮助。 希望了解我的问题,如果有任何错误,请见谅。 感谢您的帮助。

【问题讨论】:

  • 我的问题或疑问中是否有任何错误。
  • 为什么以前的 cmets/answers 被删除了。
  • 您的服务应该具有参数“start”和“count”,以便您可以从下一条记录开始获取结果。在 count 参数中,您可以指定在当前调用中获取多少条记录。
  • reloadRowsAtIndexPaths:withRowAnimation: 但我不确定,它会重新加载还是添加新行。
  • 要插入新行,您需要使用 insertRowsAtIndexPaths:withRowAnimation:如果您只想将新数据重新加载到现有行,请使用 reloadRowsAtIndexPaths:withRowAnimation:

标签: iphone objective-c xcode uitableview


【解决方案1】:

在您设置行的以下委托中添加额外的一行

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return yourMutableArray.count+1;
}

以下委托告诉您当前正在创建哪个单元格。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;

在这个下你可以添加一个检查条件,比如

if(indexPath.row > yourMutableArray.count)
{

  // This means you are at the end of your table
  // Call your webservice here and append the next set of data into the yourMutableArray
  // You can also show an activity indicator over the extra cell here, Indicating the loading of new data
   [self performSelector:@selector(getDataFromWebservice) withObject:nil afterDelay:1.0];
}
else
{
  // Do your cell settings here
}

在代码中检查网络服务是否成功的地方添加以下行以重新加载表格

[yourTable reloadData];

确保将新数据附加到 MutableArray 中,否则表格将仅显示来自 web 服务的最新数据。 希望对您有所帮助。

【讨论】:

    【解决方案2】:

    您可以在这里查看UITableView 中的“加载更多”是如何工作的

    http://www.cocoacontrols.com/platforms/ios/controls/stableviewcontroller

    【讨论】:

      【解决方案3】:

      当 cellForRowAtIndexPath 中的 count 大于 10 时,nil service Array,重新初始化它并添加来自服务调用的新数据值,然后重新加载 tableView。我想这会对你有所帮助。如果你还有问题。告诉我

      【讨论】:

      • 在这种情况下,存储在模型中的旧值将丢失。就像 1 到 10 会丢失,而 11-20 会可见。
      • 好的,如果是这样,您可以将新数组和以前的数组合并到新数组中。
      • 这取决于他,他想怎么做,如果他的数据包含数百万条记录,那么合并将是一件昂贵的事情。
      【解决方案4】:

      非常感谢您的所有回答,他们也为我提供了其他方面的帮助。 我通过为tableview添加页脚视图来解决这个问题,在页脚视图上我添加了按钮,最后在按钮操作中我调用了更多数据的服务,然后数据将在[tableView reloadData的帮助下重新加载新数据] 方法。 希望这可能对其他人有所帮助。

      【讨论】:

        猜你喜欢
        • 2018-06-13
        • 1970-01-01
        • 2016-08-04
        • 2021-09-18
        • 1970-01-01
        • 2011-06-11
        • 1970-01-01
        • 1970-01-01
        • 2016-03-06
        相关资源
        最近更新 更多