功能描述:WSL_RollView 是基于UICollectionView实现的支持水平和垂直两个方向上的的分页和渐进循环轮播效果,可以设置时间间隔、渐进速率、是否循环、分页宽度和间隔,还支持自定义分页视图的控件,用法和UICollectionView基本一样。
一、实现方法
①、 首先用UICollectionView和计时器实现一个基本的水平滚动效果,如下图,这个太简单就不在此详述。
②、对比上面的效果图,我们还需要解决分页的宽度和循环滚动的问题。
- 自定义分页宽度:默认的分页宽度是UICollectionView的宽度,所以当分页宽度的不等于UICollectionView的宽度或分页间隔不等于0时会出现错误,这时就需要我们通过自定义UICollectionViewFlowLayout来实现效果。
1 |
|
- 循环滚动:思想当然还是3 >4 >0 >1 >2 >3 >4 >0 >1,关键就在于怎么确定弥补两端轮播首尾相连需要增加的cell,前边尾首相连需要UICollectionView可见范围内的数据源后边的元素cell,后边首尾相连需要UICollectionView可见范围内的数据源前边的元素cell
1 |
|
二、WSL_RollView用法
请看WSLRollView.h文件中的注释,代理方法、属性很明朗,用法和UICollectionView基本一样,详情和效果请前往我的Github查看示例:WSL_RollView
1 | // |
以上就是我实现这个效果的过程,示例代码请看这儿WSL_RollView;如果小伙伴们有其他的实现方法,欢迎再此留言交流😊😊😀😀🤗🤗
推荐阅读:
iOS UITableView/UICollectionView获取特定位置的cell
iOS 图片浏览的放大缩小
UIScrollerView当前显示3张图
iOS 自定义转场动画
iOS 瀑布流封装
WKWebView的使用
UIScrollView视觉差动画
iOS 传感器集锦
iOS 音乐播放器之锁屏歌词+歌词解析+锁屏效果
UIActivityViewController系统原生分享-仿简书分享