• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift 4 无限滚动轮播图(UICollectionView实现)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

作为一个资深(自认为)iOS程序猿,会经常用到轮播图,但是总是感觉自己实现要比直接用别人的要方便一点,并且有一些需求需要深度定制,于是想着自己封装一个可以定制化的轮播图库JCyclePictureView

GitHub地址

1、核心代码


数据处理

通过更改数据源来给用户一个假象,图片在无限滚动(其实一共只有3个 cell),默认显示第一个,右滑 index + 1, 左滑 index - 1,然后修改数据源,异步回到第一个cell(注意不能有动画)


 滑动事件

2、可定制 cell


深度定制 cell

自定义 cell 的回调

本质为UICollectionView 的cellForItemAt 代理,需自己实现赋值逻辑


cellForItemAt

3、滚动方向


轮播图滚动方向

支持 上下左右 四种滚动方式


定时器事件

实际为 UICollectionView 用动画滚动到 第0个 cell 还是第2个 cell


UICollectionView动画

4、PageControl

为实现可支持图片的PageControl,写了一个继承UIPageControl 的 JPageControl


JPageControl

红框内为核心代码,原理其实很简单,在每一个 显示的点上面添加一张图片,然后根据 currentPage 属性修改图片


JPageControl对齐方式

目前对齐方式支持 left、center、right,通过修改 frame 确定位置

5、其它需求


init方法

pictures 可以之后设置  pictures支持本地、网络图片同时加载


轮播图标题

设置标题时 PageControl 自动右对齐


点击图片回调

index 从0 开始


自动播放时间

小于0.5秒不自动播放(如果不想自动播放可以 设为 0)


图片的ContentMode

设置图片的ContentMode

6、用法


用法

自定义 cell

如果使用过程中出现问题,可随时 [email protected] 邮件联系。

ps:如果喜欢,记得 Star 一下,谢谢支持 

源码 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
[转]Swift 基于 willSet & didSet 的订阅block(Observable)发布时间:2022-07-13
下一篇:
swift:入门知识之泛型发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap