1、描述
大多数项目中都有轮播图功能,根据业务显示对应的广告位、活动页等。 一个灵活的轮播框架:不仅可以展示图片,还可以展示自定义的视图等,框架不应该依赖具体的视图和业务数据,只负责滚动视图和相关点击功能。
YCBannerView
一款轻量级的轮播框架。
- 不依赖外界传入的图片数组,框架每次更新视图都会通过代理回调对应的
cell
和index
,供上层设置。 - 支持自定义视图。
- 支持上层设置具体的数据和视图。
具体用法和细节可参考Demo。 效果图如下:
示例Demo演示的相关功能
- 普通的轮播图演示
- 滑动轮播图更改父视图的背景颜色
2、功能列表
- 轮播图点击事件
- 轮播图自动滚动和手动滚动
- 轮播图滚动的比例、方向回调,方便上层实现具体的业务
- 刷新对应的cell
- 当前正在显示的cell索引回调,方便上层实现具体的业务
- 支持更改pageCtrl控件位置和相关配置信息。
- 支持自定义滚动时间
3、实现方案
1、设计思想
YCBannerView
采用了UIScrollView + NSTimer
的方式实现了自动滚动和手动滚动功能。- 根据
UITableView
的设计思想,提供了一系列代理方法,用法和UITableView
相似。
2、重用机制
- 内部使用三张视图,当前显示的内容出现后,前一个和下一个也同步刷新。
3、刷新数据
- 每次刷新数据三张视图同时刷新,不依赖上层具体的视图和数据,回调对应的视图和索引供使用者设置,灵活性高。
4、总结
轮播图几乎每个项目都有的功能,那么自己项目中的轮播图是怎么实现的呢?重新设计了轮播框架,具体的细节和实现可参考源码 欢迎预览