Fableon/Fableon/Class/Store/C/FAOrderRecordsViewController.swift
2025-10-23 15:53:39 +08:00

113 lines
3.5 KiB
Swift

//
// FAOrderRecordsViewController.swift
// Fableon
//
// Created by 鸿 on 2025/10/23.
//
import UIKit
import JXSegmentedView
class FAOrderRecordsViewController: FAViewController {
private lazy var titles = ["Coin Record".localized, "VIP Record".localized]
private lazy var viewControllers = [FACoinRecordViewController(), FAVipRecordViewController()]
private lazy var segmentedDataSource: JXSegmentedTitleDataSource = {
let dataSource = JXSegmentedTitleDataSource()
dataSource.itemWidth = (UIScreen.width - 32 - 24) / CGFloat(titles.count)
dataSource.titles = titles
dataSource.isTitleMaskEnabled = true
dataSource.titleNormalColor = .FFFFFF.withAlphaComponent(0.5)
dataSource.titleSelectedColor = ._333333
dataSource.titleNormalFont = .font(ofSize: 14, weight: .bold)
dataSource.titleSelectedFont = .font(ofSize: 14, weight: .bold)
dataSource.itemSpacing = 0
return dataSource
}()
private lazy var segmentedIndicator: JXSegmentedIndicatorBackgroundView = {
let indicator = JXSegmentedIndicatorBackgroundView()
indicator.indicatorHeight = 36
indicator.indicatorWidthIncrement = 0
indicator.indicatorColor = ._74_BBFF
return indicator
}()
private lazy var segmentedView: JXSegmentedView = {
let view = JXSegmentedView()
view.backgroundColor = .FFFFFF.withAlphaComponent(0.15)
view.layer.cornerRadius = 24
view.layer.masksToBounds = true
view.dataSource = segmentedDataSource
view.delegate = self
view.indicators = [segmentedIndicator]
view.listContainer = listContainerView
return view
}()
private lazy var listContainerView: JXSegmentedListContainerView = {
let view = JXSegmentedListContainerView(dataSource: self)
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Order Records".localized
fa_setupLayout()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(false, animated: true)
fa_setNavigationStyle()
}
}
extension FAOrderRecordsViewController {
private func fa_setupLayout() {
view.addSubview(segmentedView)
view.addSubview(listContainerView)
segmentedView.snp.makeConstraints { make in
make.left.equalToSuperview().offset(16)
make.centerX.equalToSuperview()
make.top.equalToSuperview().offset(20 + UIScreen.navBarHeight)
make.height.equalTo(48)
}
listContainerView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalTo(segmentedView.snp.bottom)
}
}
}
//MARK: JXSegmentedViewDelegate
extension FAOrderRecordsViewController: JXSegmentedViewDelegate {
func segmentedView(_ segmentedView: JXSegmentedView, didSelectedItemAt index: Int) {
}
}
//MARK: JXSegmentedViewDelegate
extension FAOrderRecordsViewController: JXSegmentedListContainerViewDataSource {
func listContainerView(_ listContainerView: JXSegmentedListContainerView, initListAt index: Int) -> any JXSegmentedListContainerViewListDelegate {
return viewControllers[index]
}
func numberOfLists(in listContainerView: JXSegmentedListContainerView) -> Int {
return self.titles.count
}
}