// // NRRewardCoinsCell.swift // ReaderHive // // Created by 澜声世纪 on 2025/12/11. // import UIKit import SnapKit class NRRewardCoinsCell: NRTableViewCell { var model: NRRewardCoinsModel? { didSet { timeLabel.text = model?.created_at nameLabel.text = model?.type countLabel.text = "+\(model?.coins ?? 0)" remainingLabel.text = model?.left_coins if model?.is_effective == 1 { // expiresLabel.text = "Expires in ## days".localizedReplace(text: model?.diff_datetime ?? "") expiresLabel.text = "reader_expires_in".localized + (model?.diff_datetime ?? "") } else { expiresLabel.text = "Expired".localized } } } private lazy var timeLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 12, weight: .regular) label.textColor = ._999999 return label }() private lazy var nameLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 12, weight: .medium) label.textColor = .black return label }() private lazy var countLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 14, weight: .medium) label.textColor = .F_9710_D return label }() private lazy var remainingLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 12, weight: .regular) label.textColor = ._999999 return label }() private lazy var expiresIconImageView = UIImageView(image: UIImage(named: "time_icon_02")) private lazy var expiresLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 12, weight: .regular) label.textColor = .F_9710_D return label }() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) nr_setupUI() } @MainActor required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } } extension NRRewardCoinsCell { private func nr_setupUI() { contentView.addSubview(timeLabel) contentView.addSubview(nameLabel) contentView.addSubview(countLabel) contentView.addSubview(remainingLabel) contentView.addSubview(expiresIconImageView) contentView.addSubview(expiresLabel) timeLabel.snp.makeConstraints { make in make.left.equalToSuperview().offset(28) make.top.equalToSuperview().offset(16) } nameLabel.snp.makeConstraints { make in make.left.equalTo(timeLabel) make.centerY.equalToSuperview() } expiresIconImageView.snp.makeConstraints { make in make.left.equalTo(timeLabel) make.bottom.equalToSuperview().offset(-16) } expiresLabel.snp.makeConstraints { make in make.centerY.equalTo(expiresIconImageView) make.left.equalTo(expiresIconImageView.snp.right).offset(4) } countLabel.snp.makeConstraints { make in make.centerY.equalTo(nameLabel) make.right.equalToSuperview().offset(-28) } remainingLabel.snp.makeConstraints { make in make.centerY.equalTo(expiresIconImageView) make.right.equalTo(countLabel) } } }