// // SPTableViewCell.swift // ShortPlay // // Created by 曾觉新 on 2025/4/14. // import UIKit class SPTableViewCell: UITableViewCell { var indicatorMargin: CGFloat = 7.5 { didSet { indicatorImageView.snp.updateConstraints { make in make.right.equalToSuperview().offset(-indicatorMargin) } } } var showIndicator = false { didSet { indicatorImageView.isHidden = !showIndicator } } private(set) lazy var indicatorImageView: UIImageView = { let imageView = UIImageView(image: UIImage(named: "right_arrow_icon_01")) imageView.isHidden = !showIndicator return imageView }() override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { super.init(style: style, reuseIdentifier: reuseIdentifier) self.layer.rasterizationScale = UIScreen.main.scale self.layer.shouldRasterize = true self.selectionStyle = .none self.backgroundColor = .clear contentView.addSubview(indicatorImageView) indicatorImageView.snp.makeConstraints { make in make.centerY.equalToSuperview() make.right.equalToSuperview().offset(-indicatorMargin) } } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func awakeFromNib() { super.awakeFromNib() // Initialization code } override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } } extension UITableViewCell { var sp_tableView: UITableView? { return self.value(forKey: "_tableView") as? UITableView } // MARK: - 注册 public static func registerCell(tableView: UITableView, _ reuseIdentifier: String? = nil) { let reuseIdentifier = reuseIdentifier == nil ? NSStringFromClass(self) : reuseIdentifier tableView.register(self, forCellReuseIdentifier: reuseIdentifier!) } // MARK: - 复用取值 public static func dequeueReusableCell(tableView: UITableView, indexPath: IndexPath, _ reuseIdentifier: String? = nil) -> Self { let reuseIdentifier = reuseIdentifier == nil ? NSStringFromClass(self) : reuseIdentifier let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifier!, for: indexPath) return cell as! Self } }