MoviaBox/ShortPlay/Class/ForYou/Controller/SPForYouViewController.swift
2025-04-16 18:22:12 +08:00

81 lines
2.5 KiB
Swift

//
// 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.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 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
}
}
}
}