無(wú)限循環(huán)輪播器:
- 本地圖片
- 網(wǎng)絡(luò)圖片
- 混合圖片(本地&&網(wǎng)絡(luò))
Swift版本

image.png

image.png

image.png

image.png
一.功能描述及要點(diǎn)
- [x] 1.無(wú)限圖片輪播器,加載 '本地圖片' && '網(wǎng)絡(luò)圖片' && '本地和網(wǎng)絡(luò)的混合圖片'
- [x] 2.修改成SDWebImage下載圖片
- [x] 3.通過(guò)代理方法執(zhí)行圖片的點(diǎn)擊事件
- [x] 4.collectView工作原理實(shí)現(xiàn)無(wú)限滾動(dòng)
- [x] 5.設(shè)置UIPageControl的位置:(左,中,右) 以及顏色設(shè)置
- [x] 6.設(shè)置自定義PageControl,位置:(左,中,右),自定義圖片
- [x] 7.設(shè)置描述文字的位置:(左,中,右) 以及字體顏色,大小,背景顏色
- [x] 8.多張圖片滾動(dòng)時(shí) 文字的多種顯示樣式.單張圖片時(shí)的樣式
- [x] 9.在控制器中 設(shè)置 self.automaticallyAdjustsScrollViewInsets = NO;讓scrollView自動(dòng)適應(yīng)屏幕
- [x] 10.新增 當(dāng)BannerView生成之后, 修改內(nèi)部展示的圖片.
- [x] 11.新增 Model的屬性,左右邊距 && 是否有圓角 (2018/05/04日更新)
- [x] 12.新增 動(dòng)態(tài)修改控制器的背景色 (2018/07/06日更新)
二.方法定義及調(diào)用
1.類(lèi)方法創(chuàng)建BannerView:本地圖片和網(wǎng)絡(luò)圖片
// 本地圖片
+ (instancetype)bannerViewWithLocationImagesArr:(NSArray *)locationImgArr frame:(CGRect)frame
// 網(wǎng)絡(luò)圖片
+ (instancetype)bannerViewWithNetWorkImagesArr:(NSArray *)netWorkImgArr frame:(CGRect)frame
// 混合圖片 (網(wǎng)絡(luò) || 本地圖片)
+ (instancetype)bannerViewWithBlendImagesArr:(NSArray *)blendImgArr frame:(CGRect)frame
2.設(shè)置bannerView的占位圖,定時(shí)器的時(shí)間
KNBannerViewModel *viewM = [[KNBannerViewModel alloc] init]; // 統(tǒng)一通過(guò) 設(shè)置 模型來(lái)設(shè)置 里面的參數(shù)
[viewM setIsNeedTimerRun:YES]; // 是否需要定時(shí)
[viewM setBannerTimeInterval:1]; // 改變 定時(shí)器時(shí)間
[viewM setPlaceHolder:[UIImage imageNamed:@"3"]]; // 設(shè)置占位圖
3.設(shè)置bannerView的PageControl的屬性
// 1.自定義 PageControl
KNBannerViewModel *viewM = [[KNBannerViewModel alloc] init]; // 統(tǒng)一通過(guò) 設(shè)置 模型來(lái)設(shè)置 里面的參數(shù)
NSArray *customPageImgArr = [NSArray arrayWithObjects:[UIImage imageNamed:@"pageControlSelected1"],[UIImage imageNamed:@"pageControlUnSelected1"], nil];
[viewM setPageControlImgArr:[customPageImgArr copy]]; // 設(shè)置自定義PageControl的兩張圖
[viewM setIsNeedPageControl:YES]; // 記得設(shè)置 YES
[viewM setPageControlStyle:KNBannerPageControlStyleMiddel]; // 設(shè)置pageControl 在居中
// 2.系統(tǒng)自帶PageControl
KNBannerViewModel *viewM = [[KNBannerViewModel alloc] init]; // 統(tǒng)一通過(guò) 設(shè)置 模型來(lái)設(shè)置 里面的參數(shù)
[viewM setIsNeedPageControl:YES]; // 默認(rèn)系統(tǒng)PageControl
[viewM setPageControlStyle:KNBannerPageControlStyleMiddel]; // 設(shè)置pageControl 在居中
4.動(dòng)態(tài)修改 bannerView 中的圖片
_bannerView1.netWorkImgArr = [self.changeArr mutableCopy];
_bannerView2.netWorkImgArr = [self.changeArr mutableCopy];
_bannerView3.netWorkImgArr = [self.changeArr mutableCopy];
[_bannerView1 reloadData];
[_bannerView2 reloadData];
[_bannerView3 reloadData];
5.1 讓 BannerView 無(wú)限循環(huán) (2018-1-11 日更新)
[viewM setIsNeedCycle:YES]; // 讓bannerView 無(wú)限循環(huán), 默認(rèn) 不循環(huán)
5.2 BannerView 新增 左右邊距 和 是否有圓角 (2018-05-04更新)
[viewM setBannerCornerRadius:8]; // 切個(gè)圓角
[viewM setLeftMargin:10]; // 設(shè)置個(gè)邊距
5.3 讓BannerView 新增 滾動(dòng)時(shí), 動(dòng)態(tài)修改 控制器一個(gè)控件的背景色(2018-07-06更新)
[viewM setBgChangeColorArr:self.colorArr.copy];
5.4 如果要對(duì)圖片的url 和 背景色進(jìn)行修改時(shí) 注意:
// 重要重要重要 : 若要設(shè)置 背景色 ,必須寫(xiě)在 圖片數(shù)組的前面
_bannerView1.changeColorArr = self.changeColorArr.mutableCopy;
_bannerView1.netWorkImgArr = [self.changeArr mutableCopy];
[_bannerView1 reloadData];
6.設(shè)置bannerView 介紹文字的屬性
KNBannerViewModel *viewM = [[KNBannerViewModel alloc] init]; // 統(tǒng)一通過(guò) 設(shè)置 模型來(lái)設(shè)置 里面的參數(shù)
[viewM setTextArr:[self.textArr copy]]; // 設(shè)置文字, 注意:如果文字和圖片的數(shù)量不相符,則沒(méi)有文字.如果不要文字,則不傳
[viewM setTextShowStyle:KNBannerViewTextShowStyleStay]; // 設(shè)置文字展示的樣式