// // SPCollectListCell.swift // Thimra // // Created by 曾觉新 on 2025/4/18. // import UIKit class SPCollectListCell: SPCollectionViewCell { var clickDeleteButton: ((_ cell: SPCollectListCell) -> Void)? var model: SPShortModel? { didSet { coverImageView.sp_setImage(url: model?.image_url) titleLabel.text = model?.name // selectedButton.isSelected = model?.sp_isSelected ?? false } } var sp_isEditing: Bool = false { didSet { deleteButton.isHidden = !sp_isEditing } } private lazy var coverImageView: SPImageView = { let imageView = SPImageView() imageView.layer.cornerRadius = 6 imageView.layer.masksToBounds = true imageView.layer.borderColor = UIColor.colorFFFFFF(alpha: 0.15).cgColor imageView.layer.borderWidth = 1 imageView.isUserInteractionEnabled = true return imageView }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 12) label.textColor = .colorFFFFFF() label.numberOfLines = 2 return label }() private lazy var deleteButton: UIButton = { let button = UIButton(type: .custom) // button.isUserInteractionEnabled = false button.setImage(UIImage(named: "delete_icon_04"), for: .normal) button.backgroundColor = .color000000(alpha: 0.68) button.addTarget(self, action: #selector(handleDeleteButton), for: .touchUpInside) return button }() // private lazy var selectedButton: UIButton = { // let button = UIButton(type: .custom) // button.isHidden = true // button.isUserInteractionEnabled = false // button.setImage(UIImage(named: "check_icon_01"), for: .normal) // button.setImage(UIImage(named: "check_icon_01_selected"), for: .selected) // return button // }() override init(frame: CGRect) { super.init(frame: frame) _setupUI() } @MainActor required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @objc private func handleDeleteButton() { self.clickDeleteButton?(self) } } extension SPCollectListCell { private func _setupUI() { contentView.addSubview(coverImageView) contentView.addSubview(titleLabel) coverImageView.addSubview(deleteButton) coverImageView.snp.makeConstraints { make in make.left.right.top.equalToSuperview() make.bottom.equalToSuperview().offset(-36) } titleLabel.snp.makeConstraints { make in make.left.equalToSuperview() make.top.equalTo(coverImageView.snp.bottom).offset(8) make.right.lessThanOrEqualToSuperview() } deleteButton.snp.makeConstraints { make in make.edges.equalToSuperview() } } }