136 lines
4.1 KiB
Swift
136 lines
4.1 KiB
Swift
//
|
|
// SRHomeBingeWorthyCell.swift
|
|
// SynthReel
|
|
//
|
|
// Created by 澜声世纪 on 2025/11/17.
|
|
// Copyright © 2025 SR. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import SnapKit
|
|
|
|
class SRHomeBingeWorthyCell: UICollectionViewCell {
|
|
|
|
var model: SRShortModel? {
|
|
didSet {
|
|
coverImageView.sr_setImage(model?.image_url)
|
|
titleLabel.text = model?.name
|
|
desLabel.text = model?.sr_description
|
|
if let text = model?.category?.first, text.count > 0 {
|
|
categoryLabel.text = "#\(text)"
|
|
} else {
|
|
categoryLabel.text = nil
|
|
}
|
|
}
|
|
}
|
|
|
|
lazy var bgImageView = UIImageView(image: UIImage(named: "home_binge_worthy_cell_image"))
|
|
|
|
lazy var coverImageView: SRImageView = {
|
|
let imageView = SRImageView()
|
|
imageView.layer.cornerRadius = 4
|
|
imageView.layer.masksToBounds = true
|
|
return imageView
|
|
}()
|
|
|
|
lazy var titleLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.font = .font(ofSize: 14, weight: .medium)
|
|
label.textColor = .white
|
|
return label
|
|
}()
|
|
|
|
lazy var categoryLabel: SRLabel = {
|
|
let label = SRLabel()
|
|
label.font = .font(ofSize: 11, weight: .regular)
|
|
label.textColors = [UIColor.srGreen.cgColor, UIColor.srBlue.cgColor]
|
|
label.textStartPoint = .init(x: 0.5, y: 0)
|
|
label.textEndPoint = .init(x: 0.5, y: 1)
|
|
return label
|
|
}()
|
|
|
|
lazy var desLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.font = .font(ofSize: 11, weight: .regular)
|
|
label.textColor = .A_6_A_6_A_6
|
|
label.numberOfLines = 3
|
|
return label
|
|
}()
|
|
|
|
lazy var playImageView = UIImageView(image: UIImage(named: "play_icon_01"))
|
|
|
|
lazy var playLabel: UILabel = {
|
|
let label = SRLabel()
|
|
label.font = .font(ofSize: 11, weight: .regular)
|
|
label.textColors = [UIColor.srGreen.cgColor, UIColor.srBlue.cgColor]
|
|
label.textStartPoint = .init(x: 0.5, y: 0)
|
|
label.textEndPoint = .init(x: 0.5, y: 1)
|
|
label.text = "Play"
|
|
return label
|
|
}()
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
|
|
sr_setupUI()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
}
|
|
|
|
extension SRHomeBingeWorthyCell {
|
|
|
|
private func sr_setupUI() {
|
|
contentView.addSubview(bgImageView)
|
|
contentView.addSubview(coverImageView)
|
|
contentView.addSubview(titleLabel)
|
|
contentView.addSubview(categoryLabel)
|
|
contentView.addSubview(desLabel)
|
|
contentView.addSubview(playImageView)
|
|
playImageView.addSubview(playLabel)
|
|
|
|
bgImageView.snp.makeConstraints { make in
|
|
make.edges.equalToSuperview()
|
|
}
|
|
|
|
coverImageView.snp.makeConstraints { make in
|
|
make.left.equalToSuperview().offset(10)
|
|
make.top.equalToSuperview().offset(10)
|
|
make.width.equalTo(126)
|
|
make.height.equalTo(168)
|
|
}
|
|
|
|
titleLabel.snp.makeConstraints { make in
|
|
make.left.equalTo(coverImageView.snp.right).offset(11)
|
|
make.top.equalToSuperview().offset(27)
|
|
make.right.lessThanOrEqualToSuperview().offset(-15)
|
|
}
|
|
|
|
categoryLabel.snp.makeConstraints { make in
|
|
make.left.equalTo(titleLabel)
|
|
make.top.equalTo(titleLabel.snp.bottom).offset(12)
|
|
make.right.lessThanOrEqualToSuperview().offset(-15)
|
|
}
|
|
|
|
desLabel.snp.makeConstraints { make in
|
|
make.left.equalTo(titleLabel)
|
|
make.top.equalTo(titleLabel.snp.bottom).offset(43)
|
|
make.right.lessThanOrEqualToSuperview().offset(-15)
|
|
}
|
|
|
|
playImageView.snp.makeConstraints { make in
|
|
make.left.equalTo(coverImageView.snp.right).offset(11)
|
|
make.bottom.equalTo(coverImageView).offset(1)
|
|
}
|
|
|
|
playLabel.snp.makeConstraints { make in
|
|
make.left.equalToSuperview().offset(45)
|
|
make.top.equalToSuperview().offset(9)
|
|
}
|
|
}
|
|
|
|
}
|