SBCycleScrollView
☆☆☆ “功能強大的圖片、文字輪播器,支援純文字、網路圖片、本地圖片、圖片加文字以及各種圓點樣式” ☆☆☆
支援pod匯入
pod 'SBCycleScrollView','~> 0.0.8'
SBCycleScrollView是一個簡單好用的圖片輪播器,支援網路圖片,本地圖片,文字,滑動方向,storyboard以及各種樣式.
使用方式
使用cocoapods匯入,pod 'SBCycleScrollView','~>0.0.4',如果發現pod search SBCycleScrollView 搜尋出來的不是最新版本,請先執行pod setup指令,獲取最新資料來源就可以了.
提供三種初始化方式
通過網路圖片地址初始化
let cycleScrollView = CycleScrollView.initScrollView(frame: frame, imageNamesGroup: imageUrls, cycleOption: CycleOption())
複製程式碼
通過本地圖片名稱或地址初始化
let cycleScrollView = CycleScrollView.initScrollView(frame: frame, imageNamesGroup: localImages, cycleOptions: CycleOptions())
複製程式碼
通過文字陣列初始化
let cycleScrollView = CycleScrollView.initScrollView(frame: frame, titleGroup: titles, cycleOption: CycleOption())
複製程式碼
推薦方式,通過代理和佔點陣圖初始化,常用於圖片非同步獲取的時候
let cycleScrollView = CycleScrollView.initScrollView(frame: frame, delegate: self, placehoder: UIImage.init(named: "place.png"), cycleOptions: CycleOptions())
cycleScrollView.imageURLStringsGroup = imageUrls
複製程式碼
通過單獨抽取一個struct來管理各種輪播器的各個屬性
import UIKit
public enum PageControlStyle {
case classic,aji,aleppo,chimayo,jalapeno,jaloro,paprika,puya
}
public enum PageControlAliment {
case center,right
}
public struct CycleOption {
public var scrollDirection:UICollectionViewScrollDirection = UICollectionViewScrollDirection.horizontal
public var showPageControl: Bool = true//是否顯示pageControl,預設顯示
public var isOnlyDisplayText: Bool = false//只顯示文字,預設false
public var imageViewMode: UIViewContentMode = UIViewContentMode.scaleToFill //圖片填充樣式,預設fill
public var scrollTimeInterval: TimeInterval = 2.0//滑動間隔時間
public var titleLabelBackgroundColor: UIColor = .init(red: 0, green: 0, blue: 0, alpha: 0.2)//label背景顏色
public var textColor: UIColor = .white//文字顏色
public var textFont: UIFont = UIFont.systemFont(ofSize: 14)//文字字型大小
public var titleLabelHeight: CGFloat = 30//label高度,預設30
public var textAlignment: NSTextAlignment = NSTextAlignment.left//文字預設居左
public var numberOfline = 1 // 文字行數,預設一行
public var radius: CGFloat = 5//pageControl圓點半徑
public var pageAliment: PageControlAliment = PageControlAliment.center//pageControl位置,預設居中
public var bottomOffset: CGFloat = 0//pageControl距離底部距離
public var rightOffset: CGFloat = 0//pageControl距離右側距離
public var padding: CGFloat = 7 //pagecontol間距
public var pageStyle: PageControlStyle = PageControlStyle.classic//pageControl樣式,預設系統樣式
public var currentPageDotColor: UIColor = .white//當前pageControl圓點的顏色
public var pageDotColor: UIColor = .gray//其他pageControl圓點的顏色
}
複製程式碼
點選圖片代理
代理名稱SBCycleScrollViewDelegate,代理方法
func didSelectedCycleScrollView(_ cycleScrollView: SBCycleScrollView, _ Index: NSInteger) {
print("點選了第\(Index)張圖片")
}
複製程式碼
####修改配置屬性,達到你想要的效果
\\先配置再初始化
var option = CycleOption()
option.currentPageDotColor = .blue
option.radius = 10
option.pageStyle = PageControlStyle.jalapeno
let cycleScrollView = CycleScrollView.initScrollView(frame: view.frame, imageURLsGroup: imageUrls, cycleOption: option)
\\初始化後再修改配置
let cycleScrollView = CycleScrollView.initScrollView(frame: view.frame, imageURLsGroup: imageUrls, cycleOption: CycleOption())
var option = CycleOption()
option.currentPageDotColor = .blue
option.radius = 10
option.pageStyle = PageControlStyle.jalapeno
cycleScrollView.option = option
複製程式碼
####點選圖片代理 代理名稱SBCycleScrollViewDelegate,代理方法
func didSelectedCycleScrollView(_ cycleScrollView: CycleScrollView, _ Index: NSInteger) {
print("點選了第\(Index)張圖片")
}
複製程式碼