84 lines
2.1 KiB
Swift
84 lines
2.1 KiB
Swift
//
|
|
// NRNovelCatalogCell.swift
|
|
// ReaderHive
|
|
//
|
|
// Created by 澜声世纪 on 2025/12/1.
|
|
//
|
|
|
|
import UIKit
|
|
import SnapKit
|
|
|
|
class NRNovelCatalogCell: NRTableViewCell {
|
|
|
|
var model: NRReadChapterCatalogModel? {
|
|
didSet {
|
|
titleLabel.text = model?.name
|
|
|
|
lockImageView.isHidden = !(model?.is_lock ?? false)
|
|
|
|
updateState()
|
|
}
|
|
}
|
|
|
|
var nr_isSelected: Bool = false {
|
|
didSet {
|
|
updateState()
|
|
}
|
|
}
|
|
|
|
private lazy var titleLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.font = .font(ofSize: 12, weight: .regular)
|
|
label.numberOfLines = 0
|
|
return label
|
|
}()
|
|
|
|
private lazy var lockImageView: UIImageView = {
|
|
let imageView = UIImageView()
|
|
return imageView
|
|
}()
|
|
|
|
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")
|
|
}
|
|
|
|
private func updateState() {
|
|
if nr_isSelected {
|
|
titleLabel.textColor = .F_9710_D
|
|
lockImageView.image = UIImage(named: "lock_icon_01")
|
|
} else {
|
|
titleLabel.textColor = .black.withAlphaComponent(0.5)
|
|
lockImageView.image = UIImage(named: "lock_icon_02")
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
extension NRNovelCatalogCell {
|
|
|
|
private func nr_setupUI() {
|
|
contentView.addSubview(titleLabel)
|
|
contentView.addSubview(lockImageView)
|
|
|
|
titleLabel.snp.makeConstraints { make in
|
|
make.top.equalToSuperview().offset(14)
|
|
make.centerY.equalToSuperview()
|
|
make.left.equalToSuperview().offset(16)
|
|
make.right.lessThanOrEqualToSuperview().offset(-70)
|
|
}
|
|
|
|
lockImageView.snp.makeConstraints { make in
|
|
make.centerY.equalToSuperview()
|
|
make.right.equalToSuperview().offset(-16)
|
|
}
|
|
}
|
|
|
|
}
|