MoviaBox/ShortPlay/Base/View/SPTableViewCell.swift
2025-04-14 16:32:48 +08:00

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
}
}