// // SPMineViewController.swift // ShortPlay // // Created by 曾觉新 on 2025/4/10. // import UIKit class SPMineViewController: SPViewController { private lazy var dataArr: [SPMineItem] = { let arr = [ SPMineItem(type: .orderRecord, iconImage: UIImage(named: "order_record_icon_01"), title: "Order Record".localized), SPMineItem(type: .language, iconImage: UIImage(named: "language_icon_01"), title: "Language".localized), SPMineItem(type: .privacyPolicy, iconImage: UIImage(named: "privacy_policy_icon_01"), title: "Privacy Policy".localized), SPMineItem(type: .userAgreement, iconImage: UIImage(named: "user_agreement_icon_01"), title: "User Agreement".localized), SPMineItem(type: .helpCenter, iconImage: UIImage(named: "help_center_icon_01"), title: "Help Center".localized), SPMineItem(type: .aboutUs, iconImage: UIImage(named: "about_us_icon_01"), title: "About Us".localized), ] return arr }() private lazy var headerView: SPMineHeaderView = { let view = SPMineHeaderView(frame: CGRect(x: 0, y: 0, width: kSPScreenWidth, height: 200)) return view }() private lazy var tableView: SPTableView = { let tableView = SPTableView(frame: .zero, style: .insetGrouped) tableView.delegate = self tableView.dataSource = self tableView.rowHeight = 50 SPMineCell.registerCell(tableView: tableView) return tableView }() override func viewDidLoad() { super.viewDidLoad() requestUserInfo() _setupUI() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.setNavigationNormalStyle() } } extension SPMineViewController { private func _setupUI() { tableView.tableHeaderView = self.headerView view.addSubview(tableView) tableView.snp.makeConstraints { make in make.edges.equalToSuperview() } } } //MARK: -------------- UITableViewDelegate & UITableViewDataSource -------------- extension SPMineViewController: UITableViewDelegate, UITableViewDataSource { func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = SPMineCell.dequeueReusableCell(tableView: tableView, indexPath: indexPath) cell.item = dataArr[indexPath.row] return cell } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return dataArr.count } func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { let item = dataArr[indexPath.row] switch item.type { case .privacyPolicy: let vc = SPWebViewController() vc.urlStr = SPPrivacyPolicyWebUrl self.navigationController?.pushViewController(vc, animated: true) case .userAgreement: let vc = SPWebViewController() vc.urlStr = SPUserAgreementWebUrl self.navigationController?.pushViewController(vc, animated: true) case .aboutUs: let vc = SPAboutUsViewController() self.navigationController?.pushViewController(vc, animated: true) default: break } } } extension SPMineViewController { private func requestUserInfo() { SPUserAPI.requestUserInfo { userInfo in } } }