你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> BLCycleImageView

BLCycleImageView

編輯:IOS開發綜合

此文描繪了BLCycleImageView的相關引見,詳細實例請看下文

圖片輪播器是一個在使用中運用率十分高的控件,翻了一遍手機上的app,發現簡直一切的使用中都不乏圖片輪播的身影。醒目、美觀、信息直面撲來等等特點使得輪播器成了app展現信息的首選。

其真實github上搜一下可以找到一些優秀的第三方庫,比方star較高的 SDCycleScrollView。抱著學習的態度,沒有去檢查它的源代碼,想著自己要是完成一個該怎樣做呢?立馬入手撸一個,才有了自己的輪播器BLCycleImageView。上面講大約講一下在撸的整個進程中思緒和播種,希望對各位看官有所協助(特別是像我一樣剛入門但愛折騰的小白)。

一、後期考慮預備

封裝一個控件前先需求搞明白這幾個問題:

這個控件無能啥,大約長什麼樣子? 它需求內部哪些信息? 它向外反應什麼信息? 選型;運用何種技術完成,在這裡就是以什麼為父類?

輪播器長啥樣?

隨意翻開幾個常用的使用看看就知道了(iphone上的App Store首頁就有);功用無非是顯示若干圖片、顯示以後圖片是第幾張(pagecontroll)、可以左右滑動、可以自動輪播、顯示圖片描繪以及圖片緩存等等。

輪播器要知道哪些信息呢?

輪播普通是放置相似廣告之類的信息,每個時間段投放的廣告會不一樣,這樣就需求接納內部給我的一組圖片地址

@property(nonatomic,copy)  NSArray *imageUrlArr;

那麼異步加載這些圖片時,難免會碰到網絡蹩腳的時分,那麼這個時分需求一個顯示默許的圖片。(圖片緩存采用第三方庫SDWebImage)

@property(nonatomic,strong) UIImage *placeholderImg;

下面是一個輪播器最根本必需的信息,有了這些信息,輪播器就可以任務了。

但為了更好的擴展性和定制性,我們還有需求知道很多信息,比方:每張圖片需求一個冗長的“廣告語”、能否顯示pagecontroll、能否自動輪播、自動輪播距離時間等等。不逐個羅列,詳細看上面代碼:

@property(nonatomic,copy) NSArray *imageTitles;//圖片描繪
@property(nonatomic,getter=isShowPageControll) BOOL showPageControll;
@property(nonatomic,getter=isAutoMoving) BOOL autoMoving;//能否自動輪播
@property(nonatomic,assign) NSNumber *autoMoveInterval;//輪播距離時間
@property(nonatomic,assign) PageControllPositionType pagecontrollPosition;//圖片描繪地位

暫時只想到這麼多了,這樣它就有很好的定制性了,以能滿足不同的需求。

輪播器反應哪些信息呢?

當你看到輪播器中一個著裝很暴露的美麗妹子,你能否想點擊一下等待看一下大圖呢,然後縮小,再縮小,再縮小點呢?哈哈暴露了自己的想法,次要是審美……。 那麼就需求呼應用戶的點擊圖片的事情:

@protocol CycleImageViewDelegate <NSObject>

@optional
- (void)cycleImageView:(BLCycleImageView *)cycleImageView didClickImage:(NSUInteger)imageIndex;

@end

到這裡一個功用較為完善的輪播器就根本構建起來了,結上去的就是要思索怎樣去完成了。那麼就馬上入手編碼?先等等。

用什麼來輪播器呢?

思索一下IOS的那些根底控件能完成輪播器呢?很自然的就想到三個:

UIPageViewController UICollectionView UIScrollView

其實無論用哪種方式完成都是可以,但團體覺得後兩種更適宜封裝成獨立的控件,理由很復雜,試想將一個controller添加到另外一個controller(subviewcontroller)不是不可以,總覺得怪怪的。至於是用UICollenctionView還是UIScrollView就看各位自己熟習哪個了。這裡BLCycleImageView選擇用UIScrollView來完成。

還有一個問題,怎樣完成有限輪播呢?罕見有兩種做法:

1、N+2的方式;完成原理是當需求輪播N張圖片,我們在首尾再加兩張圖片,在首部加一張圖片為第N張,尾部加一張圖片為第1張圖片。覺得有點亂?……

【BLCycleImageView】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved