ReaderHive/ReaderHive/Class/Home/V/NRHomeNovelNewArrivalsCell.swift
2025-12-15 15:02:56 +08:00

130 lines
3.7 KiB
Swift

//
// 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)
}
}
}