// // SPMineWalletView.swift // MoviaBox // // Created by 佳尔 on 2025/4/27. // import UIKit class SPMineWalletView: UIView { override var intrinsicContentSize: CGSize { return .init(width: kSPScreenWidth, height: 119) // if isShowMore { // } else { // return .init(width: kSPScreenWidth, height: 82) // } } var userInfo: SPUserInfo? { didSet { coinButton.setTitle("\(userInfo?.coin_left_total ?? 0)", for: .normal) sendCoinButton.setTitle("\(userInfo?.send_coin_left_total ?? 0)", for: .normal) } } ///是否展示更多按钮 var isShowMore: Bool = true { didSet { moreIndicatorImageView.isHidden = !isShowMore // lineView.isHidden = !isShowMore // invalidateIntrinsicContentSize() } } //MARK: UI属性 private(set) lazy var bgView: UIView = { let view = UIView() view.backgroundColor = .colorFFFFFF(alpha: 0.06) view.layer.cornerRadius = 8 view.layer.masksToBounds = true return view }() private lazy var moreButton: UIButton = { let button = UIButton(type: .custom) button.addTarget(self, action: #selector(handleWalletButton), for: .touchUpInside) return button }() private lazy var moreTitleLabel: UILabel = { let label = UILabel() label.font = .fontRegular(ofSize: 12) label.textColor = .colorFFFFFF() label.text = "movia_profile_My_Wallet".localized return label }() private lazy var moreIndicatorImageView: UIImageView = { let imageView = UIImageView(image: UIImage(named: "arrow_right_icon_02")) return imageView }() private lazy var lineView: UIView = { let view = UIView() view.backgroundColor = .color0D0807() return view }() private lazy var storeButton: UIButton = { let button = UIButton(type: .custom) button.setBackgroundImage(UIImage(named: "store_button_01"), for: .normal) button.setTitle("movia_Store".localized, for: .normal) button.setTitleColor(.colorFFFFFF(), for: .normal) button.titleLabel?.font = .fontMedium(ofSize: 18) button.addTarget(self, action: #selector(handleStoreButton), for: .touchUpInside) return button }() private lazy var coinButton: UIButton = { let button = JXButton(type: .custom) button.isUserInteractionEnabled = false button.setImage(UIImage(named: "coin_icon_01"), for: .normal) button.setTitleColor(.colorFFFFFF(), for: .normal) button.jx_font = .fontMedium(ofSize: 18) button.space = 2 return button }() ///赠送的金币 private lazy var sendCoinButton: UIButton = { let button = JXButton(type: .custom) button.isUserInteractionEnabled = false button.setImage(UIImage(named: "coin_icon_02"), for: .normal) button.setTitleColor(.colorFFFFFF(), for: .normal) button.jx_font = .fontMedium(ofSize: 18) button.space = 2 return button }() override init(frame: CGRect) { super.init(frame: frame) coinButton.setTitle("0", for: .normal) sendCoinButton.setTitle("0", for: .normal) _setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } } extension SPMineWalletView { @objc private func handleStoreButton() { let vc = SPStoreViewController() self.viewController?.navigationController?.pushViewController(vc, animated: true) } @objc private func handleWalletButton() { if !isShowMore { return } let vc = SPWalletViewController() self.viewController?.navigationController?.pushViewController(vc, animated: true) } } extension SPMineWalletView { private func _setupUI() { addSubview(bgView) bgView.addSubview(moreButton) moreButton.addSubview(moreTitleLabel) moreButton.addSubview(moreIndicatorImageView) bgView.addSubview(lineView) bgView.addSubview(storeButton) bgView.addSubview(coinButton) bgView.addSubview(sendCoinButton) bgView.snp.makeConstraints { make in make.left.equalToSuperview().offset(16) make.centerX.equalToSuperview() make.top.bottom.equalToSuperview() } moreButton.snp.makeConstraints { make in make.left.equalToSuperview() make.top.right.equalToSuperview() make.height.equalTo(36) } moreTitleLabel.snp.makeConstraints { make in make.centerY.equalToSuperview() make.left.equalToSuperview().offset(12) } moreIndicatorImageView.snp.makeConstraints { make in make.centerY.equalToSuperview() make.right.equalToSuperview().offset(-12) } lineView.snp.makeConstraints { make in make.left.equalToSuperview().offset(12) make.centerX.equalToSuperview() make.top.equalTo(moreButton.snp.bottom) make.height.equalTo(1) } storeButton.snp.makeConstraints { make in make.right.equalToSuperview().offset(-12) make.bottom.equalToSuperview().offset(-21) } coinButton.snp.makeConstraints { make in make.left.equalToSuperview().offset(8) make.centerY.equalTo(storeButton) } sendCoinButton.snp.makeConstraints { make in make.left.equalTo(coinButton.snp.right).offset(10) make.centerY.equalTo(storeButton) } } }