84 lines
2.5 KiB
Swift
84 lines
2.5 KiB
Swift
//
|
|
// 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
|
|
}
|
|
}
|