147 lines
4.4 KiB
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)
|
|
}
|
|
}
|
|
|
|
}
|