「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
想想看 ... 似乎想的有点多余了。 ~~~