iOS 一款轻量级的轮播框架

3,155 阅读2分钟

1、描述

大多数项目中都有轮播图功能,根据业务显示对应的广告位、活动页等。 一个灵活的轮播框架:不仅可以展示图片,还可以展示自定义的视图等,框架不应该依赖具体的视图和业务数据,只负责滚动视图和相关点击功能。

YCBannerView 一款轻量级的轮播框架。

  • 不依赖外界传入的图片数组,框架每次更新视图都会通过代理回调对应的cellindex,供上层设置。
  • 支持自定义视图。
  • 支持上层设置具体的数据和视图。

具体用法和细节可参考Demo。 效果图如下:

image_00.gif

仓库地址点击查看🚀🚀🚀

示例Demo演示的相关功能

  • 普通的轮播图演示
  • 滑动轮播图更改父视图的背景颜色

2、功能列表

  • 轮播图点击事件
  • 轮播图自动滚动和手动滚动
  • 轮播图滚动的比例、方向回调,方便上层实现具体的业务
  • 刷新对应的cell 
  • 当前正在显示的cell索引回调,方便上层实现具体的业务
  • 支持更改pageCtrl控件位置和相关配置信息。
  • 支持自定义滚动时间

3、实现方案

1、设计思想

  • YCBannerView 采用了 UIScrollView + NSTimer 的方式实现了自动滚动和手动滚动功能。
  • 根据UITableView的设计思想,提供了一系列代理方法,用法和UITableView相似。

2、重用机制

  • 内部使用三张视图,当前显示的内容出现后,前一个和下一个也同步刷新。

img_01.jpg

3、刷新数据

  • 每次刷新数据三张视图同时刷新,不依赖上层具体的视图和数据,回调对应的视图和索引供使用者设置,灵活性高。

4、总结

轮播图几乎每个项目都有的功能,那么自己项目中的轮播图是怎么实现的呢?重新设计了轮播框架,具体的细节和实现可参考源码 欢迎预览