2016-03-05 43 views
0

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

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

我该如何实现?

回答

0

基本步骤

  1. 你应该有一些数据结构at代表collectionview中的项目。为了简单起见,我将假设这是一个数组。

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

  3. 当你的web服务的回报,(一)更新数组(B)调用reloadData在集合视图

其他事项:

  1. 必须调用reloadData对主线程 - 如果你的web服务代码在后台线程中,使用:

    dispatch_async(dispatch_get_main_queue(), ^{ 
        // call reload here 
    }); 
    
  2. 如果你想做最小的更新,你需要知道到底发生了什么变化。例如,如果您知道只是在数组末尾添加了单个项目,则可以拨打insertItemsAtIndexPaths:来表示收集视图,只需要询问该新项目即可。