Objective-C UI之自定義輪播圖控件

wenyitao 8年前發布 | 9K 次閱讀 Objective-C開發 Objective-C

來自: http://www.cnblogs.com/smithjackyson/p/5153360.html

下面我們自定義一個輪播圖類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</pre>

在初始化方法中初始化所有控件,除了pageControl,還有scrollView、三個UIImageView,一個計時器timer

此demo輪播的思路是利用三個UIImageView分別代表顯示的圖片,和顯示的圖片的左邊以及顯示的圖片的右邊,通過不斷設置三個imageView的UIImage達到輪播的效果,當scrollView滑動到右邊的時候,設置中間和左邊的圖片為下一張圖片(注意邊界問題),然后讓scrollView滑動到中間,接著設置右邊的圖片為當前的圖片的下一張(同樣注意邊界問題),如此重復就可以達到循環播放了

因為控件里包含一個計時器timer,所以當手勢滑動時,要停止計時器,圖片切換成功后就重新創建一個timer重新計時,同樣,設置當前的圖片currentPage時,要先停止計時器,之后再重新啟動。設置方向時,定時器也會停止,然后重新根據方向和timer進行播放。

下面是demo的下載鏈接:

ImageLoop

轉載請注明:作者SmithJackyson

</div>

 本文由用戶 wenyitao 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!