Swift 4 無限滾動輪播圖(UICollectionView實現)

做爲一個資深(自認爲)iOS程序猿,會常常用到輪播圖,可是老是感受本身實現要比直接用別人的要方便一點,而且有一些需求須要深度定製,因而想着本身封裝一個能夠定製化的輪播圖庫JCyclePictureViewgit

GitHub地址github

一、核心代碼


數據處理

經過更改數據源來給用戶一個假象,圖片在無限滾動(其實一共只有3個 cell),默認顯示第一個,右滑 index + 1, 左滑 index - 1,而後修改數據源,異步回到第一個cell(注意不能有動畫)網絡


滑動事件

二、可定製 cell


深度定製 cell

自定義 cell 的回調

本質爲UICollectionView 的cellForItemAt 代理,需本身實現賦值邏輯異步


cellForItemAt

三、滾動方向


輪播圖滾動方向

支持 上下左右 四種滾動方式動畫


定時器事件

實際爲 UICollectionView 用動畫滾動到 第0個 cell 仍是第2個 cell3d


UICollectionView動畫

四、PageControl

爲實現可支持圖片的PageControl,寫了一個繼承UIPageControl 的 JPageControl代理


JPageControl

紅框內爲核心代碼,原理其實很簡單,在每個 顯示的點上面添加一張圖片,而後根據 currentPage 屬性修改圖片cdn


JPageControl對齊方式

目前對齊方式支持 left、center、right,經過修改 frame 肯定位置blog

五、其它需求


init方法

pictures 能夠以後設置 pictures支持本地、網絡圖片同時加載繼承


輪播圖標題

設置標題時 PageControl 自動右對齊


點擊圖片回調

index 從0 開始


自動播放時間

小於0.5秒不自動播放(若是不想自動播放能夠 設爲 0)


圖片的ContentMode

設置圖片的ContentMode

六、用法


用法

自定義 cell

若是使用過程當中出現問題,可隨時 mr_banma@126.com 郵件聯繫。

ps:若是喜歡,記得 Star 一下,謝謝支持

源碼

相關文章
相關標籤/搜索