资源整理iOS DeveloperIOS

「XYEasyCarousel」简单轮播图

2017-05-12  本文已影响246人  许还真

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

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

上一篇 下一篇

猜你喜欢

热点阅读