美文网首页资源整理iOS DeveloperIOS
「XYEasyCarousel」简单轮播图

「XYEasyCarousel」简单轮播图

作者: 许还真 | 来源:发表于2017-05-12 00:59 被阅读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

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

    相关文章

      网友评论

        本文标题:「XYEasyCarousel」简单轮播图

        本文链接:https://www.haomeiwen.com/subject/uhdlsttx.html