MoviaBox/ShortPlay/Class/Explore/Controller/SPExploreViewController.swift

85 lines
2.6 KiB
Swift

//
// SPExploreViewController.swift
// ShortPlay
//
// Created by on 2025/4/9.
//
import UIKit
class SPExploreViewController: SPPlayerListViewController {
override var PlayerCellClass: SPPlayerListCell.Type {
return SPExplorePlayerCell.self
}
override func viewDidLoad() {
super.viewDidLoad()
requestDataArr(page: 1)
self.delegate = self
self.dataSource = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
//MARK: -------------- SPPlayerListViewControllerDelegate --------------
extension SPExploreViewController: SPPlayerListViewControllerDelegate {
func sp_playerViewControllerLoadMoreData(playerViewController: SPPlayerListViewController) {
guard let pagination = self.pagination else { return }
guard let page = self.pagination?.current_page else { return }
let pageSize = pagination.page_size ?? 0
if pagination.page_total ?? 0 <= pageSize * page {
return
}
self.requestDataArr(page: page + 1)
}
}
//MARK: -------------- SPPlayerListViewControllerDataSource --------------
extension SPExploreViewController: SPPlayerListViewControllerDataSource {
func sp_playerListViewController(_ viewController: SPPlayerListViewController, _ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath, oldCell: UICollectionViewCell) -> UICollectionViewCell {
if let cell = oldCell as? SPPlayerListCell {
if let model = dataArr[indexPath.row] as? SPShortModel {
cell.shortModel = model
cell.videoInfo = model.video_info
}
}
return oldCell
}
func sp_playerListViewController(_ viewController: SPPlayerListViewController, _ collectionView: UICollectionView, numberOfItemsInSection section: Int, oldNumber: Int) -> Int {
return oldNumber
}
}
extension SPExploreViewController {
private func requestDataArr(page: Int) {
SPHomeAPI.requestRecommandsTV(page: page) {[weak self] listModel in
guard let self = self else { return }
if let listModel = listModel, let list = listModel.list {
if page == 1 {
self.setDataArr(dataArr: list)
self.play()
} else {
self.addDataArr(dataArr: list)
}
self.pagination = listModel.pagination
}
}
}
}