Swift 4 无限滚动轮播图(UICollectionView实现)
作為一個資深(自認為)iOS程序猿,會經常用到輪播圖,但是總是感覺自己實現要比直接用別人的要方便一點,并且有一些需求需要深度定制,于是想著自己封裝一個可以定制化的輪播圖庫JCyclePictureView。
GitHub地址
1、核心代碼
數據處理
通過更改數據源來給用戶一個假象,圖片在無限滾動(其實一共只有3個 cell),默認顯示第一個,右滑 index + 1, 左滑 index - 1,然后修改數據源,異步回到第一個cell(注意不能有動畫)
滑動事件
2、可定制 cell
深度定制 cell
自定義 cell 的回調
本質為UICollectionView 的cellForItemAt 代理,需自己實現賦值邏輯
cellForItemAt
3、滾動方向
輪播圖滾動方向
支持 上下左右 四種滾動方式
定時器事件
實際為 UICollectionView 用動畫滾動到 第0個 cell 還是第2個 cell
UICollectionView動畫
4、PageControl
為實現可支持圖片的PageControl,寫了一個繼承UIPageControl 的 JPageControl
JPageControl
紅框內為核心代碼,原理其實很簡單,在每一個 顯示的點上面添加一張圖片,然后根據 currentPage 屬性修改圖片
JPageControl對齊方式
目前對齊方式支持 left、center、right,通過修改 frame 確定位置
5、其它需求
init方法
pictures 可以之后設置 pictures支持本地、網絡圖片同時加載
輪播圖標題
設置標題時 PageControl 自動右對齊
點擊圖片回調
index 從0 開始
自動播放時間
小于0.5秒不自動播放(如果不想自動播放可以 設為 0)
圖片的ContentMode
設置圖片的ContentMode
6、用法
用法
自定義 cell
如果使用過程中出現問題,可隨時 mr_banma@126.com 郵件聯系。
ps:如果喜歡,記得 Star 一下,謝謝支持
源碼
轉載于:https://juejin.im/post/5a3a159a5188257d38441c31
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的Swift 4 无限滚动轮播图(UICollectionView实现)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [Usaco2007 Oct] Supe
- 下一篇: Binder通信机制介绍