一个 Swift 编写的循环广告轮播组件,易修改。
一个用 Swift 编写的轮播广告组件,支持代理和闭包来设置数据源和事件代理。代码少,易于修改,可以方便地定制。
同时设置了代理和闭包时,数据源会优先使用代理。事件两个都会响应。
bbannerView = BBannerView(frame: CGRect(x: 0,
y: 0,
width: UIScreen.main.bounds.size.width,
height: 250))
bbannerView.dataSource = self
bbannerView.delegate = self
view.addSubview(bbannerView)
bbannerView.reloadData()
bbannerView.startAutoScroll(timeIntrval: 2)
// MARK: - BBanerViewDataSource
func numberOfItems() -> Int {
return images.count
}
func viewForItem(bannerView: BBannerView, index: Int) -> UIView {
let imageView = UIImageView(frame: bannerView.bounds)
imageView.image = UIImage(named: images[index])
return imageView
}
// MARK: - BBannerViewDelegate
func didSelectItem(index: Int) {
print("index: \(index)")
}
self.banner2.numberOfItems = { (bannerView: BBannerView) -> Int in
return self.images.count
}
self.banner2.viewForItem = { (bannerView: BBannerView, index: Int) -> UIView in
let imageView = UIImageView(frame: bannerView.bounds)
imageView.image = UIImage(named: self.images[index])
return imageView
}
self.banner2.tap = { (bannerView: BBannerView, index: Int) in
print("banner2 tap: %d", index)
}
banner2.reloadData()
banner2.startAutoScroll(timeIntrval: 2)
pod 'BBannerView'
BBannerView.swift
拖放到项目中。BBannerView 使用 MIT 许可证。