通過自定義輪播圖控制項,學習自定義控制項,本文介紹如何創建輪播圖控制項,方便以後使用,本控制項帶計時器,預設時間間隔是5.0秒,同時支持設置左右方向輪播,也支持手勢滑動切換,另外還可以指定從下標為currentPage的圖片開始輪播
下麵我們自定義一個輪播圖類ImageLoop繼承於UIView,類ImageLoop中包含一個UIScrollView和UIPageControl,其中定義三個屬性:
pageControll,position,currentPage可以自定義pageControl樣式,也可以使用position控制播放方向,或者設置從下標為currentPage的圖片開始播放
下麵是ImageLoop的介面文件:
#import <UIKit/UIKit.h> typedef enum{Left,Right} Position; @interface ImageLoop : UIView @property (nonatomic,retain)UIPageControl *pageControll; @property (nonatomic,assign)Position position; @property (nonatomic,assign)NSInteger currentPage; - (instancetype)initWithFrame:(CGRect)frame imageArray:(NSMutableArray *)array position:(Position)position; @end
在初始化方法中初始化所有控制項,除了pageControl,還有scrollView、三個UIImageView,一個計時器timer
此demo輪播的思路是利用三個UIImageView分別代表顯示的圖片,和顯示的圖片的左邊以及顯示的圖片的右邊,通過不斷設置三個imageView的UIImage達到輪播的效果,當scrollView滑動到右邊的時候,設置中間和左邊的圖片為下一張圖片(註意邊界問題),然後讓scrollView滑動到中間,接著設置右邊的圖片為當前的圖片的下一張(同樣註意邊界問題),如此重覆就可以達到迴圈播放了
因為控制項里包含一個計時器timer,所以當手勢滑動時,要停止計時器,圖片切換成功後就重新創建一個timer重新計時,同樣,設置當前的圖片currentPage時,要先停止計時器,之後再重新啟動。設置方向時,定時器也會停止,然後重新根據方向和timer進行播放。
下麵是demo的下載鏈接:
轉載請註明:作者SmithJackyson