美文网首页
iOS自定义的无限滚动框架

iOS自定义的无限滚动框架

作者: watermelon_lp | 来源:发表于2017-07-05 22:03 被阅读72次

很早就写了这么一个框架,但一直没找到时间来推广。
照旧先放上Github的地址:
https://github.com/watermelon520/LPAutoScrollView

特色

  • 支持竖直以及水平自动轮播
  • 没有侵入性,使用自定义的view
  • 自定的view支持纯代码或者xib
  • 采用类似UITableView的方式构建框架
  • view重用机制的无限轮播,性能优异
  • 针对常用的image轮播,加入LPImageContentView直接使用

框架主要的核心代码可以直接下载下来自行研究,网上关于无限滚动的教程也很多,只是实现方式有些许不同,但是大体一样。所以我在这里就稍微简单的说一下实现方式。

原理

利用UIScrollView的滚动机制,让UIScrollViewcontentSizeframe的高一样,宽度为三倍。
然后往UIScrollView里加入三个View,依次排开,把UIScrollViewcontentSize铺满。

如图所示:
上方深色为UIScrollView,浅色为contentSize范围,
下方1、2、3分别是3个已经加入UIScrollViewview

屏幕快照 2017-07-05 21.36.58.png

UIScrollView的默认偏移量为一个宽度
当前展示的2号view
假设我们需要展示的数据数组为@[a, b, c, d, e, f],那么现在2号view显示的是b

当我们滑动UIScrollView,无论左滑还是右滑,即将出现的view要显示数据由2号view的数据决定,如果右滑,那么3号view显示c,如果左滑,1号view显示a。

现在开始滑动,如下图所示:

屏幕快照 2017-07-05 21.47.32.png

UIScrollView的偏移量为2个宽度
当前展示的是3号view,展示的是c

核心思想

这时候我们需要做几件事来让UIScrollView可以继续滚动,这也是无限滚动的核心思想所在。

  1. 使2号图展示3号图的数据
  2. 并且改变UIScrollView的偏移为1个宽度

这样用户看起来界面上什么改变也没有发生,但是我们把整个位置都给替换了。

不要吝啬你的喜欢,框架好用请Star。
如果有不懂的或者想要技术交流都可以私信我,谢谢大家。

相关文章

网友评论

      本文标题:iOS自定义的无限滚动框架

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