美文网首页
Swift轮播图的实现及原理

Swift轮播图的实现及原理

作者: loongod | 来源:发表于2015-12-03 17:46 被阅读466次

    原理:

    总共只用三个UIImageView,放在一个UIScrollView上。滑动后,更换前后的图片,并把ContentOffset设置成显示中间图片的数值,这样就可以无限左右滑动了。

    1. 首先赋值: 显示三个image,把数据源中的第一个Image赋值在中间的UIImageView上,两边依次找到应该赋值的image。
        // 得到上一张图片的下标
        private func getLastImageIndex(indexOfCurrentImage index: Int) -> Int{
            var tempIndex = index - 1
            if tempIndex == -1 {
                return self.imageArray.count - 1
            }else{
                return tempIndex
            }
        }
        
        // 得到下一张图片的下标
        private func getNextImageIndex(indexOfCurrentImage index: Int) -> Int
        {
            var tempIndex = index + 1
            return tempIndex < self.imageArray.count ? tempIndex : 0
        }
    
    1. 更改数据: 滑动后,把数据源中应该显示的image赋值在中间的UIImageView上,然后更改两边的UIImageView上的数据,把scrollView的contentOffset的偏移量设为显示中间图片的偏移量(赋值后肉眼根本无法分辨,但是用户又可以左右滑动了,这就造成了无限循环滑动的假象)。
    Circle.gif

    描述:

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

    功能:

    • 无限循环轮播

    • 图片点击闭包

    • 本地、远端图片混设

    • 支持codexibstoryboard调用

    • 支持旋转

    • 支持iPhoneiPad

    运行展示图:

    iPhone:

    相关文章

      网友评论

          本文标题:Swift轮播图的实现及原理

          本文链接:https://www.haomeiwen.com/subject/xmrshttx.html