107 lines
2.7 KiB
Swift
107 lines
2.7 KiB
Swift
//
|
|
// SRHomeTopChartsView.swift
|
|
// SynthReel
|
|
//
|
|
// Created by 湖北秦九 on 2025/11/17.
|
|
// Copyright © 2025 SR. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
import SnapKit
|
|
|
|
class SRHomeTopChartsView: SRHomeModuleView {
|
|
|
|
var popularArr: [SRShortModel]? {
|
|
didSet {
|
|
popularView.dataArr = popularArr
|
|
}
|
|
}
|
|
|
|
var updatesArr: [SRShortModel]? {
|
|
didSet {
|
|
updatesView.dataArr = updatesArr
|
|
}
|
|
}
|
|
|
|
|
|
lazy var scrollView: SRScrollView = {
|
|
let scrollView = SRScrollView()
|
|
scrollView.showsHorizontalScrollIndicator = false
|
|
return scrollView
|
|
}()
|
|
|
|
lazy var stackView: UIStackView = {
|
|
let view = UIStackView()
|
|
view.axis = .horizontal
|
|
view.spacing = 16
|
|
return view
|
|
}()
|
|
|
|
lazy var popularView: ContentView = {
|
|
let view = ContentView()
|
|
view.titleLabel.text = "Popular".localized
|
|
view.bgImageView.image = UIImage(named: "popular_bg_image")
|
|
view.didSelectedShort = { [weak self] model in
|
|
self?.didSelectedShort?(model)
|
|
}
|
|
return view
|
|
}()
|
|
|
|
lazy var updatesView: ContentView = {
|
|
let view = ContentView()
|
|
view.titleLabel.text = "Updates".localized
|
|
view.bgImageView.image = UIImage(named: "updates_bg_image")
|
|
view.didSelectedShort = { [weak self] model in
|
|
self?.didSelectedShort?(model)
|
|
}
|
|
return view
|
|
}()
|
|
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
self.titleLabel.text = "Top Charts".localized
|
|
|
|
sr_setupUI()
|
|
}
|
|
|
|
@MainActor required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
func reloadData() {
|
|
stackView.sr_removeAllArrangedSubview()
|
|
|
|
if let arr = self.popularArr, arr.count > 0 {
|
|
stackView.addArrangedSubview(popularView)
|
|
}
|
|
|
|
if let arr = self.updatesArr, arr.count > 0 {
|
|
stackView.addArrangedSubview(updatesView)
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
extension SRHomeTopChartsView {
|
|
|
|
private func sr_setupUI() {
|
|
addSubview(scrollView)
|
|
scrollView.addSubview(stackView)
|
|
|
|
scrollView.snp.makeConstraints { make in
|
|
make.left.right.equalToSuperview()
|
|
make.top.equalTo(self.button.snp.bottom)
|
|
make.height.equalTo(238 + 16)
|
|
make.bottom.equalToSuperview()
|
|
}
|
|
|
|
stackView.snp.makeConstraints { make in
|
|
make.top.equalToSuperview()
|
|
make.left.equalToSuperview().offset(15)
|
|
make.right.equalToSuperview().offset(-15)
|
|
make.height.equalTo(238 + 16)
|
|
}
|
|
}
|
|
}
|