189 lines
5.8 KiB
Swift
189 lines
5.8 KiB
Swift
//
|
|
// SPMineWalletView.swift
|
|
// MoviaBox
|
|
//
|
|
// Created by 佳尔 on 2025/4/27.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class SPMineWalletView: UIView {
|
|
|
|
override var intrinsicContentSize: CGSize {
|
|
if isShowMore {
|
|
return .init(width: kSPScreenWidth, height: 119)
|
|
} 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 {
|
|
moreButton.isHidden = !isShowMore
|
|
lineView.isHidden = !isShowMore
|
|
|
|
invalidateIntrinsicContentSize()
|
|
}
|
|
}
|
|
|
|
//MARK: UI属性
|
|
private lazy var bgView: UIView = {
|
|
let view = UIView()
|
|
view.backgroundColor = .colorFFFFFF(alpha: 0.06)
|
|
view.layer.cornerRadius = 8
|
|
view.layer.masksToBounds = true
|
|
view.layer.borderWidth = 1
|
|
view.layer.borderColor = UIColor.colorFFFFFF(alpha: 0.14).cgColor
|
|
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 = "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("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() {
|
|
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)
|
|
}
|
|
}
|
|
|
|
|
|
}
|