// // SPForYouViewController.swift // ShortPlay // // Created by 曾觉新 on 2025/4/9. // import UIKit class SPForYouViewController: SPPlayerListViewController { 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 SPForYouViewController: 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 SPForYouViewController: 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.model = model cell.videoInfo = model.video_info } } return oldCell } func sp_playerListViewController(_ viewController: SPPlayerListViewController, _ collectionView: UICollectionView, numberOfItemsInSection section: Int, oldNumber: Int) -> Int { return oldNumber } } extension SPForYouViewController { 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.pagination = listModel.pagination } } } }