iOS自定义的无限滚动框架

很早就写了这么一个框架,但一直没找到时间来推广。
照旧先放上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 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,229评论 4 61
  • 夜晚,桥上,车辆呼啸而过。 这一只路灯对那一只路灯说:“亲爱的,你好漂亮!”他已经瞧了她很久,鼓足勇气迸出这么一句...
    叶新凉阅读 370评论 3 2
  • 不都这样吗 你不去做的事会有人替你做 你不去努力的事有人在努力 你不去竞争的有人把你淘汰 再好的东西拖着拖着就没了...
    海仙子阅读 186评论 0 0
  • 一个弯腰割油菜的女人 在空旷的原野上 散发着成熟的味道 一把月牙形的镰刀割下去 长满串串籽荚的油菜棵 在她身后 一...
    王春涞阅读 260评论 2 6
  • 其实我是一个自制力很差的人。 而且是一个有着三分钟热度的人。 第一期写作训练营开始的时候,我觉得很是新鲜,兴趣来了...
    小芭比Amy妈妈阅读 214评论 4 1