Swift轮播图的实现及原理(支持xib)

原理:

总共只有三个UIImageView.

1.首先赋值: 显示三个image,把数据源中的第一个Image赋值在中间的UIImageView上,两边一次找到应该赋值的image;

2.更改数据: 滑动后,把数据源中应该显示的image赋值在中间的UIImageView上,然后更改两边的UIImageView上的数据,把scrollView的contentOffset的偏移量设为显示中间图片的偏移量(赋值后肉眼根本无法分辨,但是用户又可以左右滑动了,这就造成了无线循环滑动的假象);

GLCircleView

描述:

swift版的无限循环轮播图,可自定义时间间隔,设置本地、远端图片或混设,目前配合Kingfisher一起使用(url图片赋值ImageView和缓存)。

功能:

  • 无限循环轮播

  • 图片点击代理

  • 本地、远端图片混设

  • 支持code、xib、storyboard调用

  • 支持旋转

  • 支持iPhone、iPad

运行展示图:

使用方法:

下载后直接把CircleView.swift和CircleView.xib这2个文件拉进项目中

pod添加kingfisher

xib || storyboard:

let imageArray: [GLImageModel] = [GLImageModel("first.jpg",type: .local),GLImageModel("second.jpg",GLImageModel("third.jpg",type: .local)]
        
        self.circleView.imageModelArray = imageArray
        self.circleView.timeInterval = 5
        self.circleView.clickCircleViewClosure = { currentIndex in
            print(currentIndex,terminator: " ");
        }

code: (能用可视化就用可视化,不要再代码创建了)

let imageArray: [GLImageModel] = [GLImageModel("first.jpg",type: .local)]
        
        self.circleView = GLCircleView(frame: CGRect(x: 0,y: 64,width: self.view.frame.size.width,height: 200))
        self.circleView.imageModelArray = imageArray
        self.circleView.timeInterval = 5
        self.circleView.clickCircleViewClosure = { currentIndex in
            print(currentIndex,terminator: " ");
        }
        self.view.addSubview(circleView)

添加:

let urlImageModel = GLImageModel(self.circleView.imageModelArray.count % 2 == 0 ? url1 : url2,type: .url)
        self.circleView.imageModelArray.append(urlImageModel)

下步计划:

  • 支持pod

  • 开放更多功能

如有意见,欢迎issue

项目地址:swift无限自动循环轮播图

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...