iOS轮播图的简单实现

最近找工作看到大部分的公司都有博客或开源项目的要求,我也寻思着自己写点博客,但是实在是不知道该写些什么东西,太深奥的技术自己也写不明白,所以决定从一些平时开发中应用到的一些控件开始写,开发中遇到的问题到时候也总结写写,一方面可以自己总结,只有学会总结才能更好的进步,以后遇到同样的问题才能不犯错,另一方面也可以给有需要的朋友提供些许的帮助。

今天要写的是一个非常简单但是又常用的控件——轮播图。

此轮播图采用的是UIScrollView和PageController以及NSTimer来实现,通过NSTimer来改变UIScrollView的偏移量,然后通过scrollView的偏移量来计算当前的page。在数据源最前面添加一个最后的图片,在最后面添加第一个图片,当scrollView偏移量到最后一张图片时,设置scrollView的偏移量为第二张图片,最终达到循环轮播效果。

具体代码实现如下:

ZYCycleView.h文件内容


iOS轮播图的简单实现

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

以下是实现文件:

初始化ZYCycleView:

iOS轮播图的简单实现

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


iOS轮播图的简单实现

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

iOS轮播图的简单实现

懒加载创建scrollView以及pageControl:

iOS轮播图的简单实现

图片点击事件,UIScrollViewDelegate:

iOS轮播图的简单实现


iOS轮播图的简单实现

以上是全部的代码,代码详情:

https://github.com/Xillard/ZYCycleView.git