113 lines
3.3 KiB
Swift
113 lines
3.3 KiB
Swift
//
|
|
// 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)
|
|
}
|
|
|
|
|
|
}
|
|
|
|
}
|