閑來(lái)無(wú)事封裝一個(gè)輪播圖,方便以后項(xiàng)目直接使用。
github下載地址: https://github.com/jiangbin1993/JJCarousel.git
看看效果圖
carousel.gif
輪播圖會(huì)自動(dòng)播放滾動(dòng),默認(rèn)每隔3秒滾動(dòng)一頁(yè),間隔時(shí)間可修改。在手動(dòng)滑動(dòng)時(shí),定時(shí)器會(huì)停止,滑動(dòng)結(jié)束定時(shí)器自動(dòng)開(kāi)始。
如何使用:
將下載下來(lái)的工程文件夾JJCarousel內(nèi)文件導(dǎo)入工程中
圖片.png
代碼:
// 創(chuàng)建滾圖
JJCarousel *carousel = [[JJCarousel alloc] initWithFrame:CGRectMake(0, 100, [UIScreen mainScreen].bounds.size.width, 200)];
// 設(shè)置滾圖自動(dòng)滾動(dòng)時(shí)間間隔(單位秒 默認(rèn)為3秒鐘)
carousel.timerInterval = 1;
[self.view addSubview:carousel];
// 為輪播圖添加圖片數(shù)組(數(shù)組里是圖片的url鏈接字符串或者是工程內(nèi)圖片名。demo里的圖片數(shù)組就是url連接和工程內(nèi)圖片名稱(chēng)混合。注意:工程內(nèi)的圖片名稱(chēng)不要以http開(kāi)頭!)
[carousel configWithArray:self.array];
在封裝的輪播圖- (void)configWithArray:(NSMutableArray *)array;
方法里,為imageView加載圖片我使用的是多線程方式加載圖片,這是為了防止在弱網(wǎng)情況下加載網(wǎng)絡(luò)圖片阻塞了主線程。但是推薦使用SD_WebImage框架為imageView加載圖片,使用該框架不僅不會(huì)阻塞主線程,還能將圖片下載到本地?cái)?shù)據(jù)庫(kù)保存,下次直接可以使用數(shù)據(jù)庫(kù)中圖片,節(jié)省流量和時(shí)間。
加載圖片代碼圖.png
可以修改輪播圖的基本樣式
// 修改頁(yè)簽的樣式(默認(rèn)沒(méi)選中的頁(yè)簽為灰色,選中的為白色)
carousel.pageCtrl.pageIndicatorTintColor = [UIColor blueColor];
carousel.pageCtrl.currentPageIndicatorTintColor = [UIColor greenColor];
注意:最后在控制器銷(xiāo)毀時(shí)調(diào)用JJCarousel的destroy方法,否則會(huì)導(dǎo)致內(nèi)存泄漏。
- (void)dealloc {
[self.carousel destroy];
}