Objective-C UI之自訂輪播圖控制項,objective-cui

來源:互聯網
上載者:User

Objective-C UI之自訂輪播圖控制項,objective-cui

下面我們自訂一個輪播圖類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的下載連結:

ImageLoop

 

 

轉載請註明:作者SmithJackyson

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.