Veloria/Veloria/Class/Wallet/View/VPWalletHeaderView.swift

147 lines
4.4 KiB
Swift

//
// VPWalletHeaderView.swift
// Veloria
//
// Created by on 2025/5/30.
//
import UIKit
class VPWalletHeaderView: UIView {
var userInfo: VPUserInfo? {
didSet {
avatarImageView.vp_setImage(url: userInfo?.avator, placeholder: UIImage(named: "avatar_placeholder_icon_01"))
coinCountLabel.text = "\(userInfo?.totalCoin ?? 0)"
rechargeCoinView.count = userInfo?.coin_left_total ?? 0
sendCoinView.count = userInfo?.send_coin_left_total ?? 0
}
}
private lazy var bgView: UIView = {
let view = UIView()
view.backgroundColor = .colorFFFFFF(alpha: 0.1)
view.layer.cornerRadius = 8
view.layer.masksToBounds = true
return view
}()
private lazy var avatarImageView: VPImageView = {
let imageView = VPImageView()
imageView.layer.cornerRadius = 34
imageView.layer.masksToBounds = true
imageView.layer.borderWidth = 1
imageView.layer.borderColor = UIColor.colorFFFFFF().cgColor
return imageView
}()
private lazy var titleLabel: UILabel = {
let label = UILabel()
label.font = .fontRegular(ofSize: 12)
label.textColor = .colorFFFFFF(alpha: 0.8)
label.text = "Total Coins".localized
return label
}()
private lazy var coinIconImageView: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "coin_icon_03"))
return imageView
}()
private lazy var coinCountLabel: UILabel = {
let label = UILabel()
label.font = .fontBold(ofSize: 20)
label.textColor = .colorFFFFFF()
return label
}()
private lazy var rechargeCoinView: VPWalletHeaderItemView = {
let view = VPWalletHeaderItemView()
view.title = "Recharge".localized
return view
}()
private lazy var sendCoinView: VPWalletHeaderItemView = {
let view = VPWalletHeaderItemView()
view.title = "Donate".localized
return view
}()
private lazy var lineView: UIView = {
let view = UIView()
view.backgroundColor = .colorFFFFFF(alpha: 0.3)
return view
}()
override init(frame: CGRect) {
super.init(frame: frame)
vp_setupUI()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
extension VPWalletHeaderView {
private func vp_setupUI() {
addSubview(bgView)
addSubview(avatarImageView)
bgView.addSubview(titleLabel)
bgView.addSubview(coinIconImageView)
bgView.addSubview(coinCountLabel)
bgView.addSubview(rechargeCoinView)
bgView.addSubview(sendCoinView)
bgView.addSubview(lineView)
bgView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(15)
make.centerX.equalToSuperview()
make.bottom.equalToSuperview().offset(-20)
make.height.equalTo(130)
}
avatarImageView.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-35)
make.top.equalToSuperview()
make.width.height.equalTo(68)
}
titleLabel.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.top.equalToSuperview().offset(14)
}
coinIconImageView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(20)
make.top.equalToSuperview().offset(37)
}
coinCountLabel.snp.makeConstraints { make in
make.centerY.equalTo(coinIconImageView)
make.left.equalTo(coinIconImageView.snp.right).offset(7)
}
rechargeCoinView.snp.makeConstraints { make in
make.left.equalToSuperview()
make.bottom.equalToSuperview().offset(-13)
}
sendCoinView.snp.makeConstraints { make in
make.left.equalTo(rechargeCoinView.snp.right).offset(1)
make.top.width.equalTo(rechargeCoinView)
make.right.equalToSuperview()
}
lineView.snp.makeConstraints { make in
make.centerX.equalToSuperview()
make.centerY.equalTo(rechargeCoinView)
make.width.equalTo(0.5)
make.height.equalTo(27)
}
}
}