XSeri/XSeri/Class/Discover/Controller/XSDiscoverViewController.swift
2026-03-03 13:53:32 +08:00

77 lines
2.2 KiB
Swift

//
// XSDiscoverViewController.swift
// XSeri
//
// Created by 鸿 on 2026/1/4.
//
import UIKit
import JXPlayer
class XSDiscoverViewController: JXPlayerListViewController {
override var contentSize: CGSize {
return .init(width: XSScreen.width, height: XSScreen.height)
}
override var ViewModelClass: JXPlayerListViewModel.Type {
return XSDiscoverViewModel.self
}
var xs_viewModel: XSDiscoverViewModel {
return self.viewModel as! XSDiscoverViewModel
}
deinit {
}
override func viewDidLoad() {
super.viewDidLoad()
self.register(XSDiscoverPlayerCell.self, forCellWithReuseIdentifier: "cell")
self.delegate = self
self.dataSource = self
Task {
await self.xs_viewModel.requestDataArr(page: 1)
}
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(animated)
self.viewModel.currentCell?.pause()
}
}
//MARK: JXPlayerListViewControllerDataSource
extension XSDiscoverViewController: JXPlayerListViewControllerDataSource {
func jx_playerListViewController(_ viewController: JXPlayerListViewController, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = self.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! XSDiscoverPlayerCell
cell.model = xs_viewModel.dataArr[indexPath.row]
return cell
}
func jx_playerListViewController(_ viewController: JXPlayerListViewController, numberOfItemsInSection section: Int) -> Int {
return xs_viewModel.dataArr.count
}
}
//MARK: JXPlayerListViewControllerDelegate
extension XSDiscoverViewController: JXPlayerListViewControllerDelegate {
func jx_playerViewControllerLoadMoreData(playerViewController: JXPlayerListViewController) {
Task {
await self.xs_viewModel.requestDataArr(page: self.xs_viewModel.page + 1)
}
}
}