// // MPPositive_MoreContentViewController.swift // MusicPlayer // // Created by Mr.Zhou on 2024/4/28. // import UIKit ///更多页面(两种款式,单曲/视频一种,列表/专辑一种) class MPPositive_MoreContentViewController: MPPositive_BaseViewController { //约束类型设置 enum MoreShowType: Int { case Single = 0 case List = 1 //布局Layout var layout:UICollectionViewFlowLayout{ let layout = UICollectionViewFlowLayout() layout.sectionInset = .init(top: 0, left: 18*width, bottom: 50*width, right: 16*width) switch self { case .Single: layout.itemSize = .init(width: 339*width, height: 237*width) layout.minimumLineSpacing = 32*width case .List: layout.itemSize = .init(width: 162*width, height: 210*width) layout.minimumLineSpacing = 32*width layout.minimumInteritemSpacing = 15*width } return layout } } ///列表展示类型 private var showType:MoreShowType = .Single{ didSet{ collectionView.collectionViewLayout = showType.layout collectionView.reloadData() } } private lazy var collectionView:UICollectionView = { let collectionView:UICollectionView = .init(frame: .init(x: 0, y: 0, width: screen_Width, height: screen_Height), collectionViewLayout: showType.layout) collectionView.showsVerticalScrollIndicator = false collectionView.showsHorizontalScrollIndicator = false collectionView.backgroundColor = .clear collectionView.dataSource = self collectionView.delegate = self collectionView.register(MPPositive_MoreListContentCollectionViewCell.self, forCellWithReuseIdentifier: MPPositive_MoreListContentCollectionViewCellID) collectionView.register(MPPositive_HomeListFifthCollectionViewCell.self, forCellWithReuseIdentifier: MPPositive_HomeListFifthCollectionViewCellID) return collectionView }() //列表cell private let MPPositive_MoreListContentCollectionViewCellID = "MPPositive_MoreListContentCollectionViewCell" //单曲cell private let MPPositive_HomeListFifthCollectionViewCellID = "MPPositive_HomeListFifthCollectionViewCell" //传值 var browseModuleList:MPPositive_BrowseModuleListViewModel! override func viewDidLoad() { super.viewDidLoad() setTitle("Report") setPopBtn() confirgue() } private func confirgue() { view.backgroundColor = .init(hex: "#121212") view.addSubview(collectionView) collectionView.snp.makeConstraints { make in make.top.equalTo(navView.snp.bottom).offset(32*width) make.left.right.bottom.equalToSuperview() } } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) reload() } //传递数据检测 private func reload() { //根据传递的数据类型进行检测,判断是什么类型的 showType = .init(rawValue: browseModuleList.items.first?.browseItem.itemType.rawValue ?? 0)! } } //MARK: - collectionView extension MPPositive_MoreContentViewController: UICollectionViewDataSource, UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return browseModuleList.items.count } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { switch showType { case .Single: let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MPPositive_HomeListFifthCollectionViewCellID, for: indexPath) as! MPPositive_HomeListFifthCollectionViewCell cell.itemViewModel = browseModuleList.items[indexPath.row] return cell case .List: let cell = collectionView.dequeueReusableCell(withReuseIdentifier: MPPositive_MoreListContentCollectionViewCellID, for: indexPath) as! MPPositive_MoreListContentCollectionViewCell cell.itemViewModel = browseModuleList.items[indexPath.row] return cell } } }