// // SPHomePlayHistoricalView.swift // MoviaBox // // Created by 长沙佳儿 on 2025/6/17. // import UIKit class SPHomePlayHistoricalView: UIView { var model: SPShortModel? { didSet { coverImageView.sp_setImage(url: model?.image_url) titleLabel.text = model?.name subtitleLabel.text = "movia_watched_episode".localizedReplace(text: model?.current_episode ?? "") } } private lazy var bgView: UIView = { let view = UIImageView(image: UIImage(named: "home_historical_bg_image_")) view.isUserInteractionEnabled = true // view.addEffectView(style: .dark) // view.addRadius(topLeft: 0, topRight: 24, bottomLeft: 0, bottomRight: 24) let tap = UITapGestureRecognizer(target: self, action: #selector(handlePlayButton)) view.addGestureRecognizer(tap) return view }() private lazy var coverImageView: SPImageView = { let imageView = SPImageView() imageView.layer.cornerRadius = 4 imageView.layer.masksToBounds = true return imageView }() private lazy var closeButton: UIButton = { let button = UIButton(type: .custom) button.setImage(UIImage(named: "close_icon_03"), for: .normal) button.addTarget(self, action: #selector(handleCloseButton), for: .touchUpInside) return button }() private lazy var playButton: UIButton = { let button = UIButton(type: .custom) button.isUserInteractionEnabled = false button.setImage(UIImage(named: "play_icon_05"), for: .normal) button.addTarget(self, action: #selector(handlePlayButton), for: .touchUpInside) return button }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .fontMedium(ofSize: 12) label.textColor = .colorFFFFFF() return label }() private lazy var subtitleLabel: UILabel = { let label = UILabel() label.font = .fontRegular(ofSize: 12) label.textColor = .colorFFFFFF(alpha: 0.3) return label }() override init(frame: CGRect) { super.init(frame: frame) sp_setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @objc private func handleCloseButton() { self.isHidden = true } @objc private func handlePlayButton() { guard let shortPlayId = model?.short_play_id else { return } let vc = SPPlayerDetailViewController() vc.shortPlayId = shortPlayId SPAPPTool.topViewController()?.navigationController?.pushViewController(vc, animated: true) } } extension SPHomePlayHistoricalView { private func sp_setupUI() { addSubview(bgView) addSubview(coverImageView) bgView.addSubview(closeButton) bgView.addSubview(playButton) bgView.addSubview(titleLabel) bgView.addSubview(subtitleLabel) bgView.snp.makeConstraints { make in make.left.right.bottom.equalToSuperview() // make.height.equalTo(48) } coverImageView.snp.makeConstraints { make in make.left.bottom.top.equalToSuperview() make.height.equalTo(58) make.width.equalTo(44) } closeButton.snp.makeConstraints { make in make.centerY.equalToSuperview() make.right.equalToSuperview().offset(-4) make.width.equalTo(32) make.height.equalTo(40) } playButton.snp.makeConstraints { make in make.centerY.equalToSuperview() make.right.equalToSuperview().offset(-38) } titleLabel.snp.makeConstraints { make in make.left.equalToSuperview().offset(52) make.top.equalToSuperview().offset(7) make.right.lessThanOrEqualToSuperview().offset(-100) } subtitleLabel.snp.makeConstraints { make in make.left.equalTo(titleLabel) make.bottom.equalToSuperview().offset(-7) make.right.lessThanOrEqualToSuperview().offset(-100) } } }