無(wú)限圖片輪播器 --- Objective-C

無(wú)限循環(huán)輪播器:

  • 本地圖片
  • 網(wǎng)絡(luò)圖片
  • 混合圖片(本地&&網(wǎng)絡(luò))

Swift版本

SwiftBannerView

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è)置文字展示的樣式

6.圖片的點(diǎn)擊

1>遵守 KNBannerViewDelegate
2>設(shè)代理 bannerView.delegate = self;
3>點(diǎn)擊執(zhí)行方法 - (void)bannerView:(KNBannerView *)bannerView collectionView:(UICollectionView *)collectionView collectionViewCell:(KNBannerCollectionViewCell *)collectionViewCell didSelectItemAtIndexPath:(NSInteger)index;
4>滾動(dòng)執(zhí)行方法 - (void)bannerView:(KNBannerView *)bannerView topColor:(UIColor *)topColor bottomColor:(UIColor *)bottomColor alpha:(CGFloat)alpha isRight:(BOOL)isRight
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • swift:無(wú)限圖片輪播器 圖片輪播器用處很廣,什么廣告投放呀,新聞?lì)^條滾動(dòng)之類(lèi)的,都是使用它。出于學(xué)習(xí)的目的用s...
    瘋狂的剁椒魚(yú)頭閱讀 7,368評(píng)論 22 27
  • 最近閑來(lái)無(wú)事,封裝了一個(gè)無(wú)限圖片輪播器,基于collectionView完成,抽取了兩個(gè)API,一個(gè)是創(chuàng)建輪播器,...
    打瞌睡de小男孩閱讀 834評(píng)論 2 5
  • 項(xiàng)目中很多時(shí)候會(huì)碰到這個(gè)需求,實(shí)現(xiàn)多張圖片的無(wú)限循環(huán)輪轉(zhuǎn),以前做過(guò),項(xiàng)目中幾個(gè)地方的都用到了,當(dāng)時(shí)沒(méi)有封裝,幾個(gè)...
    jiangamh閱讀 484評(píng)論 0 3
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,069評(píng)論 4 61
  • 說(shuō)一個(gè)人越是炫耀什么,則說(shuō)明他越缺什么。這句話(huà)不完全對(duì),但也確實(shí)有幾分道理。 套用一下可以變成“越是沒(méi)底氣的人,越...
    林易子閱讀 653評(píng)論 0 1

友情鏈接更多精彩內(nèi)容