110 lines
2.8 KiB
Swift
110 lines
2.8 KiB
Swift
//
|
|
// CoinsRechargeGridCell.swift
|
|
// Crush
|
|
//
|
|
// Created by Leon on 2025/9/15.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class CoinsRechargeGridCell: UICollectionViewCell{
|
|
var block: UIView!
|
|
|
|
var stackV: UIStackView!
|
|
var iconAndLabel: CLIconLabel!
|
|
var priceLabel : CLLabel!
|
|
|
|
var data : IAPProducts?
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
setupViews()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
private func setupViews() {
|
|
block = {
|
|
let v = UIView()
|
|
v.cornerRadius = 16
|
|
v.backgroundColor = .c.csbn
|
|
contentView.addSubview(v)
|
|
v.snp.makeConstraints { make in
|
|
make.edges.equalToSuperview()
|
|
}
|
|
return v
|
|
}()
|
|
|
|
stackV = {
|
|
let v = UIStackView()
|
|
v.spacing = 8
|
|
v.axis = .vertical
|
|
v.alignment = .center
|
|
block.addSubview(v)
|
|
v.snp.makeConstraints { make in
|
|
make.leading.trailing.equalToSuperview()
|
|
make.centerY.equalToSuperview()
|
|
}
|
|
return v
|
|
}()
|
|
|
|
iconAndLabel = {
|
|
let v = CLIconLabel()
|
|
v.spacing = 8
|
|
v.iconSize = CGSize(width: 24, height: 24)
|
|
v.iconImageView.image = UIImage.icon32Diamond
|
|
v.contentLabel.textColor = .text
|
|
v.contentLabel.font = .t.tndm
|
|
stackV.addArrangedSubview(v)
|
|
return v
|
|
}()
|
|
|
|
priceLabel = {
|
|
let v = CLLabel()
|
|
v.textColor = .c.ctsn
|
|
v.font = .t.tnms
|
|
stackV.addArrangedSubview(v)
|
|
return v
|
|
}()
|
|
|
|
testData()
|
|
}
|
|
|
|
private func testData(){
|
|
let coin = Coin(cents: 530)
|
|
iconAndLabel.contentLabel.text = coin.formatted
|
|
|
|
priceLabel.text = "$4.99"
|
|
}
|
|
|
|
// MARK: - Public
|
|
|
|
func config(_ data: IAPProducts?){
|
|
self.data = data
|
|
guard let tier = data, let chargeAmount = tier.chargeAmount, let payAmount = tier.payAmount else{
|
|
return
|
|
}
|
|
|
|
let coin = Coin(cents: chargeAmount)
|
|
iconAndLabel.contentLabel.text = coin.formatted
|
|
|
|
if let currencySymbol = tier.currencySymbol{
|
|
let coin = Coin(usd: payAmount)
|
|
priceLabel.text = "\(currencySymbol)\(coin.formatted)"
|
|
// priceLabel.text = "\(currencySymbol)\(payAmount)"
|
|
}else{
|
|
let usd = Coin(usd: payAmount*0.01)
|
|
priceLabel.text = "$\(usd.formatted)"
|
|
}
|
|
|
|
}
|
|
|
|
func setupSelected(selected: Bool){
|
|
block.layer.borderWidth = selected ? 2 : 0
|
|
block.layer.borderColor = selected ? UIColor.c.cpn.cgColor : UIColor.clear.cgColor
|
|
}
|
|
|
|
|
|
}
|