LNMineViewController.swift 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. //
  2. // LNMineViewController.swift
  3. // Lanu
  4. //
  5. // Created by OneeChan on 2025/11/14.
  6. //
  7. import Foundation
  8. import UIKit
  9. import SnapKit
  10. extension UIView {
  11. func pushToMine() {
  12. let vc = LNMineViewController()
  13. navigationController?.pushViewController(vc, animated: true)
  14. }
  15. }
  16. class LNMineViewController: UIViewController {
  17. private let stackView = UIStackView()
  18. private let qrCodeView = LNMineQRCodeShareView()
  19. private let orderRecordView = LNMineOrderRecordView()
  20. override func viewDidLoad() {
  21. super.viewDidLoad()
  22. setupViews()
  23. LNEventDeliver.addObserver(self)
  24. onUserInfoChanged(userInfo: myUserInfo)
  25. }
  26. override func viewWillAppear(_ animated: Bool) {
  27. super.viewWillAppear(animated)
  28. LNRelationManager.shared.reloadRelationInfoIfNeed()
  29. LNProfileManager.shared.reloadMyProfileDetail()
  30. LNPurchaseManager.shared.reloadWalletInfo()
  31. if myUserInfo.playmate {
  32. LNGameMateManager.shared.getGameMateManagerInfo()
  33. }
  34. }
  35. }
  36. extension LNMineViewController: LNProfileManagerNotify {
  37. func onUserInfoChanged(userInfo: LNUserProfileVO) {
  38. guard userInfo.userNo.isMyUid else { return }
  39. qrCodeView.isHidden = !userInfo.playmate
  40. orderRecordView.isHidden = !userInfo.playmate
  41. }
  42. }
  43. extension LNMineViewController {
  44. private func setupViews() {
  45. view.backgroundColor = .primary_1
  46. let topCover = UIImageView()
  47. topCover.image = .icHomeTopBg
  48. view.addSubview(topCover)
  49. topCover.snp.makeConstraints { make in
  50. make.top.leading.trailing.equalToSuperview()
  51. }
  52. let fakeNavBar = LNFakeNaviBar()
  53. fakeNavBar.isUserInteractionEnabled = false // 因为是空白
  54. view.addSubview(fakeNavBar)
  55. fakeNavBar.snp.makeConstraints { make in
  56. make.horizontalEdges.equalToSuperview()
  57. make.top.equalToSuperview()
  58. }
  59. let scrollView = UIScrollView()
  60. scrollView.showsVerticalScrollIndicator = false
  61. scrollView.showsHorizontalScrollIndicator = false
  62. scrollView.contentInset = .init(top: 0, left: 0, bottom: -view.commonBottomInset + 70, right: 0)
  63. scrollView.clipsToBounds = false
  64. view.addSubview(scrollView)
  65. scrollView.snp.makeConstraints { make in
  66. make.horizontalEdges.equalToSuperview().inset(16)
  67. make.bottom.equalToSuperview()
  68. make.top.equalTo(fakeNavBar.snp.bottom)
  69. }
  70. stackView.axis = .vertical
  71. stackView.spacing = 16
  72. scrollView.addSubview(stackView)
  73. stackView.snp.makeConstraints { make in
  74. make.edges.equalToSuperview()
  75. make.width.equalToSuperview()
  76. }
  77. stackView.addArrangedSubview(LNMineUserInfoView())
  78. stackView.addArrangedSubview(qrCodeView)
  79. stackView.addArrangedSubview(LNMineWalletInfoView())
  80. stackView.addArrangedSubview(orderRecordView)
  81. stackView.addArrangedSubview(LNMineFunctionView())
  82. }
  83. }
  84. #if DEBUG
  85. import SwiftUI
  86. struct LNMineViewControllerPreview: UIViewControllerRepresentable {
  87. func makeUIViewController(context: Context) -> some UIViewController {
  88. LNMineViewController()
  89. }
  90. func updateUIViewController(_ uiViewController: UIViewControllerType, context: Context) { }
  91. }
  92. #Preview(body: {
  93. LNMineViewControllerPreview()
  94. })
  95. #endif