SynthReel/SynthReel/Class/Home/V/SRHomeTopChartsView.swift
2025-11-20 16:59:32 +08:00

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)
}
}
}