// // 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() titleLabel.text = model?.brief } } var sp_isSelected: Bool = false { didSet { if sp_isSelected { bgView.colors = [UIColor.colorF6D8A0().cgColor, UIColor.colorDF9F46().cgColor] contentView.backgroundColor = .color684B2A() titleLabel.textColor = .color9E692C() desLabel.textColor = .colorBE9D70() moneyBgView.colors = [UIColor.colorF8F1E2().cgColor, UIColor.colorEBD5A3().cgColor] moneyLabel.textColor = .colorAD7433() } else { bgView.colors = [UIColor.colorFFFFFF().cgColor, UIColor.colorFFFFFF().cgColor] contentView.backgroundColor = .colorCC9251() titleLabel.textColor = .colorCA8D3B() desLabel.textColor = .colorD0C0AA() moneyBgView.colors = [UIColor.colorA36C2D().cgColor, UIColor.color412D11().cgColor] moneyLabel.textColor = .colorFFFFFF() } } } private lazy var bgView: SPGradientView = { let view = SPGradientView() view.locations = [0, 1] view.startPoint = .init(x: 0, y: 0.5) view.endPoint = .init(x: 1, y: 0.5) view.layer.cornerRadius = 8 view.layer.masksToBounds = true return view }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .fontBold(ofSize: 18) label.adjustsFontSizeToFitWidth = true return label }() private lazy var desLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 12) label.text = "movia_vip_membership".localized return label }() private lazy var moneyBgView: SPGradientView = { let view = SPGradientView() 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() label.setContentHuggingPriority(.required, for: .horizontal) label.setContentCompressionResistancePriority(.required, for: .horizontal) return label }() override init(frame: CGRect) { super.init(frame: frame) contentView.layer.cornerRadius = 8 contentView.layer.masksToBounds = true _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(15) make.top.equalToSuperview().offset(11) make.right.lessThanOrEqualTo(moneyBgView.snp.left).offset(-5) } 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(-15) make.height.equalTo(36) } moneyLabel.snp.makeConstraints { make in make.centerY.equalToSuperview() make.centerX.equalToSuperview() make.left.equalToSuperview().offset(13) } } }