無限圖片輪播器 --> Swift

SwiftBannerView

要求 :

  • Kingfisher 4.0+
  • Swift 4.0 +
  • platform : iOS 10.0 +

SwiftBannerView下載鏈接

Object-c 版本

KNBannerView

無限循環輪播器:

  • 本地圖片
  • 網絡圖片
  • 混合圖片(本地&&網絡)
BannerViewBlend.gif
BannerViewlocate.gif
BannerViewNetwork.gif

一.功能描述及要點

  • [x] 1.無限圖片輪播器,加載 '本地圖片' && '網絡圖片' && '本地和網絡的混合圖片'
  • [x] 2.Kingfisher加載網絡圖片
  • [x] 3.通過代理方法執行圖片的點擊事件
  • [x] 4.collectView工作原理實現無限滾動
  • [x] 5.設置UIPageControl的位置:(左,中,右) 以及顏色設置
  • [x] 6.設置自定義PageControl,位置:(左,中,右),自定義圖片
  • [x] 7.設置描述文字的位置:(左,中,右) 以及字體顏色,大小,背景顏色,背景透明度
  • [x] 8.多張圖片滾動時 文字的多種顯示樣式.單張圖片時的樣式
  • [x] 9.通過BannerModel的屬性,左右邊距 && 是否有圓角

二.方法定義及調用

1.類方法創建BannerView:本地圖片 || 網絡圖片 || 混合圖片

// 本地圖片
class func bannerViewLocationImgArr(_ locationImgArr :NSMutableArray?, bannerFrame frame :CGRect) -> SwiftBannerView
// 網絡圖片
class func bannerViewNetworkImgArr(_ networkImgArr :NSMutableArray?, bannerFrame frame :CGRect) -> SwiftBannerView
// 混合圖片 (網絡 || 本地圖片)
class func bannerViewBlendImgArr(_ blendImgArr :NSMutableArray?, bannerFrame frame :CGRect) -> SwiftBannerView

2.設置bannerView的占位圖,定時器的時間

let bannerModel = SwiftBannerModel() // 統一通過 設置 模型來設置 里面的參數
bannerModel.isNeedTimerRun  = true // 需要定時跑
bannerModel.timeInterval = 3 // 改變 定時器時間
bannerModel.placeHolder = UIImage.init(named: "1") // 設置占位圖

3.設置bannerView的PageControl的屬性

// 1.自定義 PageControl
let bannerModel = SwiftBannerModel() // 統一通過 設置 模型來設置 里面的參數
bannerModel.pageControlStyle = SwiftBannerPageControlStyle.right // pageControl 居右
bannerModel.pageControlImgArr = [UIImage.init(named: "pageControlSelected1")!,UIImage.init(named: "pageControlUnSelected1")!] // 自定義pageControl 的圖片
bannerModel.textArr = self.textArr.copy() as? NSArray // 顯示的文字
bannerModel.textChangeStyle = .follow // 文字 的顯示樣式

// 2.系統自帶PageControl
let bannerModel = SwiftBannerModel() // 統一通過 設置 模型來設置 里面的參數
bannerModel.isNeedPageControl = true // 默認系統PageControl
bannerModel.pageControlStyle = SwiftBannerPageControlStyle.middle // pageControl 居中

5.1 讓 BannerView 無限循環

bannerModel.isNeedCycle = true // 讓bannerView 無限循環, 默認 不循環

5.2 BannerView 新增 左右邊距 和 是否有圓角

bannerModel.leftMargin = 10
bannerModel.bannerCornerRadius = 8

6.設置bannerView 介紹文字的屬性

let bannerModel = SwiftBannerModel() // 統一通過 設置 模型來設置 里面的參數
bannerModel.textArr = self.textArr.copy() as? NSArray // 顯示的文字 // 設置文字, 注意:如果文字和圖片的數量不相符,則沒有文字.如果不要文字,則不傳
bannerModel.textChangeStyle = .stay // 文字 的顯示樣式 // 設置文字展示的樣式

6.圖片的點擊

1>遵守 SwiftBannerViewDelegate
2>設代理 bannerView.delegate = self
3>執行方法 func bannerView(_ bannerView: SwiftBannerView, collectionView: UICollectionView, collectionViewCell: SwiftBannerCollectioniewCell, didSelectItemAtIndexPath index: Int)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容