最近找工作看到大部分的公司都有博客或开源项目的要求,我也寻思着自己写点博客,但是实在是不知道该写些什么东西,太深奥的技术自己也写不明白,所以决定从一些平时开发中应用到的一些控件开始写,开发中遇到的问题到时候也总结写写,一方面可以自己总结,只有学会总结才能更好的进步,以后遇到同样的问题才能不犯错,另一方面也可以给有需要的朋友提供些许的帮助。
今天要写的是一个非常简单但是又常用的控件——轮播图。
此轮播图采用的是UIScrollView和PageController以及NSTimer来实现,通过NSTimer来改变UIScrollView的偏移量,然后通过scrollView的偏移量来计算当前的page。在数据源最前面添加一个最后的图片,在最后面添加第一个图片,当scrollView偏移量到最后一张图片时,设置scrollView的偏移量为第二张图片,最终达到循环轮播效果。
具体代码实现如下:
ZYCycleView.h文件内容

h文件定义了ZYCycleView的初始化,轮播图所需的各种属性以及点击轮播图的回调,包括block回调和delegate回调。
以下是实现文件:
初始化ZYCycleView:

初始化属性默认值,创建scrollView以及PageControl:

创建timer循环图片,每隔scrollTimeInterval改变scroolView的偏移量:

懒加载创建scrollView以及pageControl:

图片点击事件,UIScrollViewDelegate:


以上是全部的代码,代码详情:
https://github.com/Xillard/ZYCycleView.git
网友评论