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