「XYEasyCarousel」简单轮播图

XYEasyCarousel 的诞生 

     XYEasyCarousel 顾名思义 , 就是一个简单的轮播图实现。 为什么会想到写这么一个常用的轮播图控件呢,是某一天使用UICollectionView的时候发现可以使用ta来实现轮播。

XYEasyCarousel 的实现方式 

 UICollectionView本身有重用机制,那么就利用ta的重用机制来实现。下面简单介绍一下核心三个要点:

【1】- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section 

这个数据源是返回Item个数,我们返回最大值 UINT16_MAX(65536个item,那手抖~),并记录实际Item个数 (假设是:_numbersOfItems)。

【2】- (__kindof UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath;

这个数据源是返回对应的Item,我们此处需要获取Item的model (图片,图片链接等)来设置Item。但如何获取到对应的Item的model呢? 我们可以通过indexPath.row % _numbersOfItems 这个算式来指定对应的Item index 从而获取到对应 model。

【3】初始化ItemIndex 

默认ItemIndex是从0开始的,这样子的话,一开始我们左手抖是空白的(左边没有Item了)。因此我们一开始就二分UINT16_MAX,使其居中来解决这个问题。通过算式 (UINT16_MAX/2) - ((UINT16_MAX/2) % _numbersOfItems) 从而获取Item0居中位置并初始化时候设置偏移到这个位置。

这样我们的XYEasyCarousel 思路上也就基本可行了。 (ps: 一个大西瓜 , 左一半,右一半)。

XYEasyCarousel 的样貌



XYEasyCaroursel 的开源地

https://github.com/XuYanci/XYEasyCarousel

想想看 ... 似乎想的有点多余了。 ~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容