130 lines
3.7 KiB
Swift
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)
|
|
}
|
|
}
|
|
|
|
}
|