如何在ios中的集合视图上实现延迟加载

时间:2016-03-05 12:52:33

标签: objective-c uikit

我需要在点击另一个类中的webservice后在集合视图上实现延迟加载图像。 (流程如下)

  1. 选择一个类别。
  2. 点击过滤器选项。
  3. 检查不同类别的所需商品,如品牌,款式,价格和颜色。
  4. 最后点击完成。然后应该为过滤的项目列表调用Web服务,每次返回20个项目,并且控制进入具有20个项目的类别屏幕(页面#1)。如果应该显示超过20个项目,它将加载并返回更多项目。
  5. 我该如何实现?

2 个答案:

答案 0 :(得分:0)

将此用于延迟加载

https://github.com/SVProgressHUD/SVProgressHUD

你必须像这样开始[SVProgressHUD Show]

停止[SVProgressHUD Dismiss]

答案 1 :(得分:0)

基本步骤

  1. 您应该有一些数据结构来表示集合视图中的项目。为简单起见,我假设这是一个数组。

  2. 实现UICollectionViewDataSource方法以在数据源中显示该数组。

  3. 当您的webservice返回时,(a)更新数组(b)在集合视图上调用reloadData

  4. 其他要知道的事情:

    1. 您必须在主线程上调用reloadData - 如果您的Web服务代码在后台线程中,请使用:

      dispatch_async(dispatch_get_main_queue(), ^{
          // call reload here
      });
      
    2. 如果您想进行最小程度的更新,您需要知道究竟发生了什么变化。例如,如果您知道刚刚在数组的末尾添加了一个项目,则可以调用insertItemsAtIndexPaths:来表示它只需要请求该新项目的集合视图