// // SPMyListViewController.swift // ShortPlay // // Created by 曾觉新 on 2025/4/18. // import UIKit class SPMyListViewController: SPViewController { private lazy var titles = ["Follow List".localized, "Play List".localized] private lazy var viewControllers: [SPViewController] = { let vc1 = SPCollectListViewController() let vc2 = SPPlayHistoryViewController() return [vc1, vc2] }() private lazy var pageView: JYPageController = { let pageView = JYPageController() pageView.delegate = self pageView.dataSource = self pageView.config.indicatorWidth = 20 pageView.config.indicatorHeight = 4 pageView.config.indicatorCornerRadius = 2 pageView.config.indicatorColor = .colorFFFFFF(alpha: 0.9) pageView.config.selectedTitleColor = .colorFFFFFF(alpha: 0.9) pageView.config.selectedTitleFont = 16 pageView.config.selectedTitleFontWeight = .medium pageView.config.normalTitleColor = .color888888() pageView.config.normalTitleFont = 15 pageView.config.normalTitleFontWeight = .regular pageView.config.leftPadding = 15 pageView.config.itemsMargin = 40 return pageView }() override func viewDidLoad() { super.viewDidLoad() _setupUI() } override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) self.navigationController?.setNavigationBarHidden(true, animated: true) } } extension SPMyListViewController { private func _setupUI() { addChild(pageView) view.addSubview(pageView.view) pageView.view.snp.makeConstraints { make in make.edges.equalToSuperview() } } } //MARK: -------------- JYPageControllerDelegate & JYPageControllerDataSource -------------- extension SPMyListViewController: JYPageControllerDelegate, JYPageControllerDataSource { func pageController(_ pageController: JYPageController, frameForSegmentedView segmentedView: JYSegmentedView) -> CGRect { return .init(x: 0, y: kSPStatusbarHeight + 10, width: kSPScreenWidth, height: 35) } func pageController(_ pageController: JYPageController, frameForContainerView container: UIScrollView) -> CGRect { let y = kSPStatusbarHeight + 10 + 35 return .init(x: 0, y: kSPStatusbarHeight + 10 + 35, width: kSPScreenWidth, height: kSPScreenHeight - y - kSPTabBarHeight) } func pageController(_ pageController: JYPageController, titleAt index: Int) -> String { return titles[index] } func numberOfChildControllers() -> Int { return titles.count } func childController(atIndex index: Int) -> any JYPageChildContollerProtocol { return self.viewControllers[index] } }