写这篇博客的起因是这样子的,看了 git上一个模仿半塘 app的代码,pod中有一些源码,没看过的就单个弄出来,记个笔记,注释就直接在代码里了,直接截图了……
广告banner的方式在app中算是比较常见的推广,拉留存的方式。如图
当然,线上这个广告banner做的比较low,但是无伤大雅。
然后外加一个定时器。定时器也有就是单纯的NSTimer。。
很low很朴素的实现。
今天突然发现一个比较有趣的实现。使用UICollectionView.支持pod方式
pod'SDCycleScrollView','~> 1.3'
目录结构如图
UIView+SDExtension UIView 的扩展,建议如果项目中使用这个组件,直接拖入代码进来。这个类可以删掉。每个项目几乎都有类似的扩展,没有必要有太多的相似代码
主要的类就是SDCycleScrollView 和 TAPageControl 前者实现了轮播的功能,后者实现了自定义UIPageControl。
这里比较巧妙。图片个数 *100,比如5个banner就500个。但是并不创建真正的模型。在reload的时候进行设置就ok
long itemIndex = indexPath.item%self.imagePathsGroup.count;//index对图片的个数取余数,结果刚好就是要展示的那张图片
在ScrollView的代理中,同样适用取余数的技巧设置pageControl的当前位置,如图:注释
最开始的位置定位:直接放到中间的位置。如果有3 张图片要轮播,则是在 3 * 100/2 偏移量是149的位置上
如下图所示:
第一次写阅读源码的博客,因为直接就在Xcode 里面写好注释了,所以就直接截图了……囧。有疑问我们再讨论。以后还会坚持写阅读源码的笔记。