// // NRHomeNovelNewArrivalsCell.swift // ReaderHive // // Created by 湖北秦九 on 2025/11/24. // import UIKit import SnapKit class NRHomeNovelNewArrivalsCell: UICollectionViewCell { var model: NRNovelModel? { didSet { coverImageView.nr_setImage(model?.image_url) titleLabel.text = model?.name if let text = model?.category?.first, text.count > 0 { categoryView.isHidden = false categoryLabel.text = text } else if let text = model?.categoryList?.first?.name, text.count > 0 { categoryView.isHidden = false categoryLabel.text = text } else { categoryView.isHidden = true } if model?.tag_type == .new { markImageView.image = UIImage(named: "new_icon_01") markImageView.isHidden = false } else if model?.tag_type == .hot { markImageView.image = UIImage(named: "hot_icon_03") markImageView.isHidden = false } else { markImageView.isHidden = true } } } lazy var coverImageView: NRImageView = { let imageView = NRImageView() imageView.layer.cornerRadius = 4 imageView.layer.masksToBounds = true return imageView }() lazy var titleLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 12, weight: .regular) label.textColor = .black label.numberOfLines = 2 return label }() lazy var categoryView: UIView = { let view = UIView() view.backgroundColor = .black.withAlphaComponent(0.05) view.layer.cornerRadius = 10 view.layer.masksToBounds = true return view }() lazy var categoryLabel: UILabel = { let label = UILabel() label.font = .font(ofSize: 10, weight: .regular) label.textColor = .black.withAlphaComponent(0.5) return label }() lazy var markImageView: UIImageView = { let imageView = UIImageView(image: UIImage(named: "new_icon_01")) return imageView }() override init(frame: CGRect) { super.init(frame: frame) nr_setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } } extension NRHomeNovelNewArrivalsCell { private func nr_setupUI() { contentView.addSubview(coverImageView) coverImageView.addSubview(markImageView) contentView.addSubview(titleLabel) contentView.addSubview(categoryView) categoryView.addSubview(categoryLabel) coverImageView.snp.makeConstraints { make in make.left.right.top.equalToSuperview() make.height.equalTo(135) } markImageView.snp.makeConstraints { make in make.left.top.equalToSuperview() } titleLabel.snp.makeConstraints { make in make.left.equalToSuperview() make.right.lessThanOrEqualToSuperview() make.top.equalTo(coverImageView.snp.bottom).offset(4) } categoryView.snp.makeConstraints { make in make.left.equalToSuperview() make.right.lessThanOrEqualToSuperview() make.top.equalTo(titleLabel.snp.bottom).offset(4) make.height.equalTo(20) } categoryLabel.snp.makeConstraints { make in make.center.equalToSuperview() make.left.equalToSuperview().offset(8) } } }