113 lines
3.5 KiB
Swift
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
|
|
}
|
|
|
|
}
|