// // SPVipAlertCell.swift // MoviaBox // // Created by 佳尔 on 2025/5/14. // import UIKit class SPVipAlertCell: SPCollectionViewCell { var model: SPPayTemplateItem? { didSet { moneyLabel.text = "\(model?.currency ?? "")\(model?.price ?? "")" titleLabel.text = model?.vip_type_key?.getText().capitalizingFirstLetter() } } private lazy var bgView: UIView = { let view = UIView() view.backgroundColor = .colorFFFFFF() view.layer.cornerRadius = 8 view.layer.masksToBounds = true return view }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .fontBold(ofSize: 18) label.textColor = .colorCA8D3B() return label }() private lazy var desLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 12) label.textColor = .colorD0C0AA() label.text = "movia_vip_membership".localized return label }() private lazy var moneyBgView: SPGradientView = { let view = SPGradientView() view.colors = [UIColor.colorA36C2D().cgColor, UIColor.color412D11().cgColor] view.locations = [0, 1] view.startPoint = .init(x: 0, y: 0.5) view.endPoint = .init(x: 1, y: 0.5) view.layer.cornerRadius = 18 view.layer.masksToBounds = true return view }() private lazy var moneyLabel: UILabel = { let label = UILabel() label.font = .fontBold(ofSize: 14) label.textColor = .colorFFFFFF() return label }() override init(frame: CGRect) { super.init(frame: frame) contentView.layer.cornerRadius = 8 contentView.layer.masksToBounds = true contentView.backgroundColor = .colorCC9251() _setupUI() } @MainActor required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } } extension SPVipAlertCell { private func _setupUI() { contentView.addSubview(bgView) bgView.addSubview(titleLabel) bgView.addSubview(desLabel) bgView.addSubview(moneyBgView) moneyBgView.addSubview(moneyLabel) bgView.snp.makeConstraints { make in make.left.equalToSuperview().offset(1) make.centerX.equalToSuperview() make.top.equalToSuperview().offset(1) make.bottom.equalToSuperview().offset(-5) } titleLabel.snp.makeConstraints { make in make.left.equalToSuperview().offset(25) make.top.equalToSuperview().offset(11) } desLabel.snp.makeConstraints { make in make.left.equalTo(titleLabel) make.top.equalTo(titleLabel.snp.bottom).offset(2) } moneyBgView.snp.makeConstraints { make in make.centerY.equalToSuperview() make.right.equalToSuperview().offset(-25) make.height.equalTo(36) } moneyLabel.snp.makeConstraints { make in make.centerY.equalToSuperview() make.centerX.equalToSuperview() make.left.equalToSuperview().offset(13) } } }