// // SPVideoPlayerInfoView.swift // ShortPlay // // Created by 曾觉新 on 2025/4/17. // import UIKit class SPVideoPlayerInfoView: UIView { var shortModel: SPShortModel? { didSet { coverImageView.sp_setImage(url: shortModel?.image_url) titleLabel.text = shortModel?.name } } //MARK: UI属性 private lazy var bgView: UIView = { let view = UIView() view.layer.cornerRadius = 5 view.layer.masksToBounds = true view.backgroundColor = .color000000(alpha: 0.27) return view }() private lazy var coverImageView: SPImageView = { let imageView = SPImageView() imageView.layer.cornerRadius = 5 imageView.layer.masksToBounds = true return imageView }() private lazy var titleLabel: UILabel = { let label = UILabel() label.font = .fontRegular(ofSize: 13) label.textColor = .colorFFFFFF() return label }() private lazy var moreButton: JXButton = { let button = JXButton(type: .custom) button.colors = [UIColor.colorF56490().cgColor, UIColor.colorD568D2().cgColor] button.startPoint = .init(x: 0, y: 0.5) button.endPoint = .init(x: 1, y: 0.5) button.locations = [0, 1] button.setImage(UIImage(named: "play_icon_02"), for: .normal) button.setTitle("Series".localized, for: .normal) button.setTitleColor(.colorFFFFFF(), for: .normal) button.jx_font = .fontRegular(ofSize: 11) button.layer.cornerRadius = 10.5 button.layer.masksToBounds = true button.space = 2 button.addTarget(self, action: #selector(handleMoreButton), for: .touchUpInside) return button }() override init(frame: CGRect) { super.init(frame: frame) _setupUI() } required init?(coder: NSCoder) { fatalError("init(coder:) has not been implemented") } @objc private func handleMoreButton() { let vc = SPPlayerDetailViewController() vc.shortPlayId = shortModel?.short_play_id self.viewController?.navigationController?.pushViewController(vc, animated: true) } } extension SPVideoPlayerInfoView { private func _setupUI() { addSubview(bgView) addSubview(coverImageView) addSubview(titleLabel) addSubview(moreButton) bgView.snp.makeConstraints { make in make.left.right.bottom.equalToSuperview() make.width.equalTo(240) make.height.equalTo(54) } coverImageView.snp.makeConstraints { make in make.left.bottom.top.equalToSuperview() make.width.equalTo(49) make.height.equalTo(66) } titleLabel.snp.makeConstraints { make in make.left.equalTo(coverImageView.snp.right).offset(10) make.top.equalTo(bgView).offset(5) make.right.lessThanOrEqualToSuperview().offset(-18) } moreButton.snp.makeConstraints { make in make.left.equalTo(coverImageView.snp.right).offset(10) make.bottom.equalToSuperview().offset(-5) make.width.equalTo(59) make.height.equalTo(21) } } }