Swift輪播圖的實現及原理(支持xib)

原理:

總共只有三個UIImageView.git

1.首先賦值: 顯示三個image,把數據源中的第一個Image賦值在中間的UIImageView上,兩邊一次找到應該賦值的image;github

2.更改數據: 滑動後,把數據源中應該顯示的image賦值在中間的UIImageView上,而後更改兩邊的UIImageView上的數據,把scrollView的contentOffset的偏移量設爲顯示中間圖片的偏移量(賦值後肉眼根本沒法分辨,可是用戶又能夠左右滑動了,這就形成了無線循環滑動的假象);swift

GLCircleView

描述:

swift版的無限循環輪播圖,可自定義時間間隔,設置本地、遠端圖片或混設,目前配合Kingfisher一塊兒使用(url圖片賦值ImageView和緩存)。緩存

功能:

  • 無限循環輪播app

  • 圖片點擊代理url

  • 本地、遠端圖片混設spa

  • 支持code、xib、storyboard調用代理

  • 支持旋轉code

  • 支持iPhone、iPad圖片

運行展現圖:

運行展現

使用方法:

下載後直接把CircleView.swift和CircleView.xib這2個文件拉進項目中

pod添加kingfisher

xib || storyboard:

let imageArray: [GLImageModel] = [GLImageModel("first.jpg", type: .local), GLImageModel("second.jpg", type: .local), 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), GLImageModel("second.jpg", type: .local), GLImageModel("third.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無限自動循環輪播圖

相關文章
相關標籤/搜索