//
|
// CommmonBannerView.swift
|
// WanPai
|
//
|
// Created by 无故事王国 on 2023/11/1.
|
//
|
|
import UIKit
|
|
//struct CommmonBannerModel {
|
// var index = 0 //自定义索引
|
// var id:Int? //ID
|
// var name:String? //名称
|
// var resource:String? //数据源:URL等
|
// var mediaType:CommmonBannerView.MediaType?
|
//}
|
|
//class CommmonBannerView: UIView, UICollectionViewDelegate, UICollectionViewDataSource,UICollectionViewDelegateFlowLayout {
|
//
|
// enum MediaType {
|
// case videoUrl,imageUrl,imageLocal,videoLocal
|
// }
|
//
|
// private lazy var collectionView:UICollectionView = {
|
// var layout = UICollectionViewFlowLayout()
|
// layout.minimumLineSpacing = 0
|
// layout.minimumInteritemSpacing = 0
|
// layout.scrollDirection = .horizontal
|
// layout.sectionInset = .zero
|
// layout.headerReferenceSize = .zero
|
// layout.footerReferenceSize = .zero
|
// layout.itemSize = CGSize(width: self.width, height: self.height)
|
// let collectionView = UICollectionView(frame:CGRect(x: 0, y: 0, width: self.width, height: self.height), collectionViewLayout: layout)
|
// collectionView.delegate = self
|
// collectionView.dataSource = self
|
// collectionView.isPagingEnabled = true
|
// collectionView.showsHorizontalScrollIndicator = false
|
// collectionView.register(CommmonBannerViewCell.self, forCellWithReuseIdentifier: "BannerView")
|
// collectionView.decelerationRate = .normal
|
// collectionView.contentInsetAdjustmentBehavior = .never
|
// collectionView.backgroundColor = .white
|
// collectionView.bounces = false
|
// return collectionView
|
// }()
|
//
|
// private lazy var pageControl:UIPageControl = {
|
// let control = UIPageControl()
|
// control.currentPageIndicatorTintColor = .white
|
// control.pageIndicatorTintColor = .gray.withAlphaComponent(0.6)
|
// return control
|
// }()
|
//
|
// private var timer:Timer?
|
//
|
// private var items = [CommmonBannerModel]()
|
// private var selectClouse:((CommmonBannerModel)->Void)?
|
// private var autoRoll:Bool = true
|
// private var currentPage:Int = 0
|
// private var timeInterval:Int = 5
|
//
|
// override func awakeFromNib() {
|
// super.awakeFromNib()
|
// setUI()
|
// }
|
//
|
// public func setItems(items:[CommmonBannerModel],autoRoll:Bool = true,selectClouse:((CommmonBannerModel)->Void)? = nil){
|
//
|
// self.items = items
|
// if items.count > 1{
|
// self.items.append(items.first!)
|
// }
|
// self.autoRoll = autoRoll
|
// self.selectClouse = selectClouse
|
// if items.count <= 1{self.autoRoll = false}
|
//
|
// setUI()
|
// collectionView.reloadData()
|
//
|
// if self.autoRoll{
|
// DispatchQueue.main.asyncAfter(deadline: .now()+5) {
|
// self.startTimer()
|
// }
|
// }
|
// }
|
//
|
// private func setUI(){
|
// addSubview(collectionView)
|
// collectionView.snp.makeConstraints { make in
|
// make.edges.equalToSuperview()
|
// }
|
//
|
// if items.count > 1{
|
// pageControl.numberOfPages = items.count - 1
|
//
|
// addSubview(pageControl)
|
// pageControl.snp.makeConstraints { make in
|
// make.centerX.equalToSuperview()
|
// make.bottom.equalToSuperview().offset(-10)
|
// make.height.equalTo(8)
|
// }
|
// }
|
// }
|
//
|
// private func startTimer(){
|
// timer = Timer(timeInterval: TimeInterval(timeInterval), repeats: true, block: {[weak self] t in
|
// guard let weakSelf = self else { return }
|
// weakSelf.currentPage += 1
|
//
|
// if weakSelf.currentPage >= weakSelf.pageControl.numberOfPages{
|
// weakSelf.currentPage = 0
|
// weakSelf.collectionView.setContentOffset(.zero, animated: false)
|
// weakSelf.pageControl.currentPage = 0
|
// }
|
// weakSelf.collectionView.setContentOffset(CGPoint(x: weakSelf.currentPage * Int(weakSelf.width), y: 0), animated: true)
|
// })
|
// timer?.fire()
|
// RunLoop.current.add(timer!, forMode: .common)
|
// }
|
//
|
// func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
|
// return items.count
|
// }
|
//
|
// func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
|
// let item = items[indexPath.row]
|
// selectClouse?(item)
|
// }
|
//
|
// func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
|
// return CGSize(width:collectionView.bounds.size.width,height:ceil(collectionView.bounds.size.height))
|
// }
|
//
|
// func scrollViewWillBeginDragging(_ scrollView: UIScrollView) {
|
// print("--开始滑动")
|
// timer?.fireDate = Date.distantFuture
|
// }
|
//
|
// func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) {
|
// print("--结束滑动")
|
// timer?.fireDate = Date.init(timeIntervalSinceNow: 3.0) //3秒后开启
|
// }
|
//
|
// func scrollViewDidEndScrollingAnimation(_ scrollView: UIScrollView) {
|
// let page = scrollView.contentOffset.x / scrollView.width
|
// if page.int > pageControl.numberOfPages{
|
// pageControl.currentPage = 0
|
// }else{
|
// pageControl.currentPage = page.int
|
// }
|
// }
|
//
|
// func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
|
// let page = scrollView.contentOffset.x / scrollView.width
|
// if page.int >= pageControl.numberOfPages{
|
// pageControl.currentPage = 0
|
// collectionView.setContentOffset(.zero, animated: false)
|
// }else{
|
// pageControl.currentPage = page.int
|
// }
|
// }
|
//
|
// func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
|
// let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "BannerView", for: indexPath) as! CommmonBannerViewCell
|
// let item = items[indexPath.row]
|
//
|
// switch item.mediaType {
|
// case .imageUrl:
|
// if let i = item.resource{
|
// cell.imgView.sd_setImage(with: URL(string: i))
|
// }
|
// case .imageLocal:
|
// if let i = item.resource{
|
// cell.imgView.image = UIImage(named: i)
|
// }
|
// default:break
|
// }
|
// return cell
|
// }
|
//}
|
//
|
//class CommmonBannerViewCell: UICollectionViewCell {
|
//
|
// lazy var imgView:UIImageView = {
|
// let img = UIImageView()
|
// img.contentMode = .scaleAspectFit
|
// return img
|
// }()
|
//
|
// override init(frame: CGRect) {
|
// super.init(frame: frame)
|
// contentView.addSubview(imgView)
|
// imgView.snp.makeConstraints { make in
|
// make.edges.equalToSuperview()
|
// }
|
// }
|
//
|
// required init?(coder aDecoder: NSCoder) {
|
// fatalError("init(coder:) has not been implemented")
|
// }
|
//}
|