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