# UICollectionViewAdvance **Repository Path**: creeve/UICollectionViewAdvance ## Basic Information - **Project Name**: UICollectionViewAdvance - **Description**: UICollectionView的一些很实用的特性 - **Primary Language**: Objective-C - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2016-12-24 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README #UICollectionViewAdvance ##分段加载 在开发频道页面中,要实现这样一个页面: ![](http://ww1.sinaimg.cn/large/006tNbRwjw1fb1ys7qdubj30a40osada.jpg) iOS端的处理是首先调用接口获取栏目(比如猜你喜欢,我的收藏,热播排行等),返回栏目数组,然后iOS端再将栏目ID作为参数去获取栏目底下的频道。 > 之所以不一次性返回,是由于Portal部分接口需要调用另一个模块,可能返回的很慢。只能分别请求,分段加载。 整个页面是基于UICollectionView实现的,一个栏目是一个Section,一个频道是一个Cell,以往的处理逻辑很粗暴,来一个数据就reloadData,实际体验并不好。 这里使用了分段reload,由于获取到栏目的时候,整个CollectionView的section数量已经固定了,所以返回栏目对应的频道的时候,并不需要reload整个CV,直接reload返回数据的那个section就可以了。 ``` [self.collectionView reloadSections:[NSIndexSet indexSetWithIndex:section]]; ``` 当然,这个section得数据层记录并返回。 实际的刷新效果如下: ![](http://ww1.sinaimg.cn/large/006tNbRwjw1fb20g2m8hhg30ab0j0q70.gif)