// // SPRewardCoinsViewController.swift // MoviaBox // // Created by 佳尔 on 2025/4/29. // import UIKit //赠币记录 class SPRewardCoinsViewController: SPViewController { private var dataArr: [SPRewardCoinsRecordModel] = [] private var page: Int = 1 //MARK: UI属性 private lazy var tableView: SPTableView = { let tableView = SPTableView(frame: .zero, style: .plain) tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 96 tableView.contentInset = UIEdgeInsets(top: 0, left: 0, bottom: kSPTabbarSafeBottomMargin, right: 0) tableView.sp_addRefreshHeader { [weak self] in self?.handleHeaderRefresh(nil) } tableView.sp_addRefreshBackFooter(insetBottom: tableView.contentInset.bottom) { [weak self] in self?.handleFooterRefresh(nil) } SPRewardCoinsCell.registerCell(tableView: tableView) return tableView }() override func viewDidLoad() { super.viewDidLoad() self.title = "Reward Coins".localized self.edgesForExtendedLayout = .top _setupUI() requestDataArr(page: 1, completer: nil) } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(false, animated: true) setNavigationNormalStyle(backgroundColor: .clear, isTranslucent: true) } override func handleHeaderRefresh(_ completer: (() -> Void)?) { self.requestDataArr(page: 1) { [weak self] in self?.tableView.sp_endHeaderRefreshing() } } override func handleFooterRefresh(_ completer: (() -> Void)?) { self.requestDataArr(page: self.page + 1) { [weak self] in self?.tableView.sp_endFooterRefreshing() } } } extension SPRewardCoinsViewController { private func _setupUI() { view.addSubview(tableView) tableView.snp.makeConstraints { make in make.left.right.bottom.equalToSuperview() make.top.equalToSuperview().offset(kSPNavBarHeight) } } } //MARK: -------------- UITableViewDelegate & UITableViewDataSource -------------- extension SPRewardCoinsViewController: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = SPRewardCoinsCell.dequeueReusableCell(tableView: tableView, indexPath: indexPath) cell.model = self.dataArr[indexPath.row] return cell } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { let count = self.dataArr.count if count == 0 { self.tableView.addNormalEmpty() } else { self.tableView.hiddenEmpty() } return count } } extension SPRewardCoinsViewController { private func requestDataArr(page: Int, completer: (() -> Void)?) { SPWalletAPI.reuqestSendCoinRecord(page: page) { [weak self] listModel in guard let self = self else { return } if let list = listModel?.list { if page == 1 { self.dataArr.removeAll() } self.dataArr += list self.page = page self.tableView.reloadData() } completer?() } } }