JMCarouselView -- 圖片輪播器

JMCarouselView 是本人 Jimmy 使用Swift語言封裝的圖片輪播器。 基于UIScrollView/UICollectionView 用兩種思路做了整合, 可實現(xiàn)無間隙循環(huán)播放,可方便的整合入app , 支持本地圖片和網(wǎng)絡圖片(依賴SDWebImage 第三方庫), 簡單易用。

Github地址:

https://github.com/JimmyPeng4iOS/JMCarouselView


無間隙循環(huán)展示
JMCarouselView.gif

使用方法:

  • 主要有兩種思路

ScrollView

  • 初始化方法1 -- 網(wǎng)絡加載
       /**
      初始化方法1,傳入圖片URL數(shù)組,以及pageControl的當前page點的顏色,特別注意需要SDWebImage框架支持
          
      - parameter frame:          frame
      - parameter imgURLArray:    圖片URL數(shù)組
      - parameter pagePointColor: pageControl的當前page點的顏色
      - parameter stepTime:       廣告每一頁停留時間
          
      - returns: ScrollView圖片輪播器
      */
    
          headerView = JMCarouselScrollView(
                                          frame: CGRect(x: 0, y: 0, width:UIScreen.mainScreen().bounds.width, height: 220),
                                          imageURLArray: urlStringArr(),
                                          pagePointColor: UIColor.whiteColor(),
                                          stepTime: 2.0)
    

* 初始化方法2 -- 本地加載
    /**
    初始化方法2,傳入圖片數(shù)組,以及pageControl的當前page點的顏色,無需依賴第三方庫
    
    - parameter frame:          frame
    - parameter imgArray:       圖片數(shù)組
    - parameter pagePointColor: pageControl的當前page點的顏色
    - parameter stepTime:       廣告每一頁停留時間
    
    - returns: ScrollView圖片輪播器
    */
    
    headerView = JMCarouselScrollView(
                                    frame: CGRect(x: 0, y: 0, width:UIScreen.mainScreen().bounds.width, height: 220),
                                    imgArray: imgArray(),
                                    pagePointColor: UIColor.whiteColor(),
                                    stepTime: 2.0)
ScrollView是采用前后添加一張圖片,然后到達多出來的兩張圖片瞬間跳轉(zhuǎn)(肉眼觀察不到)的方式來實現(xiàn)無限輪播


##CollectionView

* 初始化方法1 -- 網(wǎng)絡加載
 /**
初始化方法1,傳入圖片URL數(shù)組,以及pageControl的當前page點的顏色,特別注意需要SDWebImage框架支持
    
- parameter frame:          frame
- parameter imgURLArray:    圖片URL數(shù)組
- parameter pagePointColor: pageControl的當前page點的顏色
- parameter stepTime:       廣告每一頁停留時間
    
- returns: ScrollView圖片輪播器
*/

    headerView = JMCarouselCollection(
                                    frame: CGRect(x: 0, y: 0, width:UIScreen.mainScreen().bounds.width, height: 220),
                                    imageURLArray: urlStringArr(),
                                    pagePointColor: UIColor.whiteColor(),
                                    stepTime: 2.0)

* 初始化方法2 -- 本地加載
    /**
    初始化方法2,傳入圖片數(shù)組,以及pageControl的當前page點的顏色,無需依賴第三方庫
    
    - parameter frame:          frame
    - parameter imgArray:       圖片數(shù)組
    - parameter pagePointColor: pageControl的當前page點的顏色
    - parameter stepTime:       廣告每一頁停留時間
    
    - returns: ScrollView圖片輪播器
    */
    
    headerView = JMCarouselCollection(
                                    frame: CGRect(x: 0, y: 0, width:UIScreen.mainScreen().bounds.width, height: 220),
                                    imgArray: imgArray(),
                                    pagePointColor: UIColor.whiteColor(),
                                    stepTime: 2.0)
CollectionView是添加大量的組,每一組的items就是需要展示的圖片,來實現(xiàn)偽無限輪播,由于SDWebImage自帶緩存功能, 使用本地的方式也會去下載,該方法不會浪費用戶流量



 
#注意事項: 
1. 需要使用第一種初始化方式傳入URL的時候, 需要依賴第三方庫  SDWebImage!! ⊙▽⊙
2. 通過替換`Assets.xcassets`資源夾內(nèi)的`holder.jpg`可更改placeholderImage(建議使用同名,要更換名字可到源文件下更改)
3. 需要定義一個屬性強引用輪播器,以便于釋放內(nèi)存
eg.

var headerView: JMCarouselCollection?

headerView =JMCarouselCollection(xxxxxxxx) 

tableView.tableHeaderView = headerView

//MARK:釋放
override func viewWillDisappear(animated: Bool)
{
    headerView?.stopTimer()
}

---
#####最后 再來一遍github地址 (??????)??

<https://github.com/JimmyPeng4iOS/JMCarouselView>

---
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容