123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- //
- // MeTraineeListViewController.swift
- // JiaPeiManage
- //
- // Created by Ning.ge on 2023/6/13.
- //
- import UIKit
- import RxSwift
- import RxCocoa
- final class MeTraineeListViewController: BaseViewController {
-
- private struct Metric {
- static let statusBarHeight = isIphoneX ? 44.f : 20.f
- static let navBarHeight = 44.f
- }
-
- // MARK: 私有属性
-
- private var menuTitles : [String] = ["科一", "科二", "科三", "科四", "毕业"]
-
- private var idxs: [UInt] = []
-
- private var menuItemCurrentBtn : UIButton?
-
- // MARK: UI let
- let statusBar = UIView().then {
- $0.backgroundColor = UIColor.db_theme
- }
-
- let navBar = MeTraineeNavBar.loadFromNib()
-
- let pageController = VTMagicController().then {
- $0.view.translatesAutoresizingMaskIntoConstraints = false
- $0.magicView.navigationColor = .db_theme_L2
- $0.magicView.sliderColor = .db_sliderColor
- $0.magicView.switchStyle = .default
- $0.magicView.layoutStyle = .divide
- $0.magicView.navigationHeight = 57.f
- // $0.magicView.sliderExtension = -10
- $0.magicView.sliderWidth = 22.f
- $0.magicView.sliderOffset = -8
- $0.magicView.sliderHeight = 4
- $0.magicView.isSeparatorHidden = false
- $0.magicView.bubbleRadius = 2
- $0.magicView.needPreloading = true
- $0.magicView.separatorHeight = 0 //下划线h
- }
-
- override func setupConstraints() {
-
- statusBar.snp.makeConstraints { (make) in
- make.left.right.top.equalToSuperview()
- make.height.equalTo(Metric.statusBarHeight)
- }
-
- navBar.snp.remakeConstraints { (make) in
- make.left.right.equalToSuperview()
- make.height.equalTo(Metric.navBarHeight)
- make.top.equalTo(statusBar.snp.bottom)
- }
-
- pageController.view.snp.makeConstraints { (make) in
- make.left.right.bottom.equalToSuperview()
- make.top.equalTo(navBar.snp.bottom)
- }
-
- }
- func scrollViewDidScroll(_ scrollView: UIScrollView) {
- }
- // MARK: StatusBar
- override func viewWillAppear(_ animated: Bool) {
- super.viewWillAppear(animated)
-
- self.navigationController?.setNavigationBarHidden(true, animated: true)
- }
-
- override func viewDidLoad() {
- super.viewDidLoad()
- setupUI()
- configureMagicController()
- }
-
- // MARK: 私有方法
- func setupUI(){
- self.view.backgroundColor = .db_theme
- self.navBar.back_button.addTarget(self, action: #selector(actionBackdo), for: .touchUpInside)
- self.navBar.search_button.rx.tap.subscribe ({ _ in
- NYSwRouter.push(NYSwPushType.trainee_search.path)
- }).disposed(by: disposeBag)
- }
-
- func configureMagicController(){
-
- self.view.addSubview(navBar)
- self.view.addSubview(statusBar)
- self.addChild(pageController)
- self.view.addSubview(pageController.view)
-
- //设置VTMagicController代理,初始页码
- pageController.magicView.delegate = self
- pageController.magicView.dataSource = self
- pageController.magicView.reloadData(toPage: 0)
-
- }
- }
- //VTMagicViewDelegate view代理
- extension MeTraineeListViewController : VTMagicViewDelegate {
-
- func magicView(_ magicView: VTMagicView, didSelectItemAt itemIndex: UInt) {
- var menuItem = magicView.menuItem(at: itemIndex)
- if (menuItemCurrentBtn != nil) {
- menuItemCurrentBtn?.titleLabel?.font = NYFont.SysFont.sys_15
- }
- menuItemCurrentBtn = menuItem
- menuItem?.titleLabel?.font = UIFont.boldSystemFont(ofSize: 19)
- if itemIndex == 0 || itemIndex == 1 {
- guard let currentVc = pageController.currentViewController else { return }
-
- let currentPage = pageController.currentPage
-
- if currentPage == itemIndex {
- // TogetherDataManager.refreshDataForVTMagic(currentVc,true)
- }
- }
- }
-
- func magicView(_ magicView: VTMagicView, viewDidAppear viewController: UIViewController, atPage pageIndex: UInt) {
-
- if pageIndex == 0 || pageIndex == 1 {
- var canRefresh: Bool = false
-
- if let collectionVc = viewController as? BaseCollectionViewController {
-
- if collectionVc.totalItems() > 0 {
- canRefresh = true
- }
- }
-
- if idxs.contains(pageIndex) || canRefresh {
-
- // TogetherDataManager.refreshDataForVTMagic(viewController, false)
- }
- }
- }
-
- func magicView(_ magicView: VTMagicView, viewDidDisappear viewController: UIViewController, atPage pageIndex: UInt) {
-
- if pageIndex == 0 || pageIndex == 1 {
- if !idxs.contains(pageIndex) {
- idxs.append(pageIndex)
- }
- }
-
- if pageIndex == 1 {
- // TogetherDataManager.referenceDate = Date()
- }
- }
- }
- //VTMagicViewDataSource 数据源代理
- extension MeTraineeListViewController : VTMagicViewDataSource{
- func menuTitles(for magicView: VTMagicView) -> [String] {
- return menuTitles
- }
-
- func magicView(_ magicView: VTMagicView, menuItemAt itemIndex: UInt) -> UIButton {
-
- var menuItem = magicView.dequeueReusableItem(withIdentifier: "homeItemIdentifier")
- if menuItem == nil {
- menuItem = UIButton(type: .custom)
- menuItem?.setTitleColor(.db_fontGray, for: .normal)
- menuItem?.setTitleColor(.db_fontSelColor, for: .selected)
- menuItem?.titleLabel?.font = NYFont.SysFont.sys_15
- if itemIndex==0 {
- menuItemCurrentBtn = menuItem
- menuItem?.titleLabel?.font = UIFont.boldSystemFont(ofSize: 17)
- }
- }
-
- return menuItem ?? UIButton()
- }
-
- func magicView(_ magicView: VTMagicView, viewControllerAtPage pageIndex: UInt) -> UIViewController {
-
- if pageIndex == 0 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController01")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController()
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 1 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController02")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController()
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 2 {
- var meTraineeSubjectPageViewController = magicView.dequeueReusablePage(withIdentifier: "MeTraineeSubjectPageViewController03")
- if meTraineeSubjectPageViewController == nil {
- meTraineeSubjectPageViewController = MeTraineeSubjectPageViewController()
- }
- return meTraineeSubjectPageViewController ?? UIViewController()
- } else if pageIndex == 3{
-
- return UIViewController()
- } else {
- // var branchController = magicView.dequeueReusablePage(withIdentifier: "BranchViewController")
- // if branchController == nil {
- // let reactor = BranchViewReactor(homeService: homeService)
- // branchController = BranchViewController(reactor: reactor, branchSectionDelegateFactory: { () -> BranchSectionDelegate in
- // BranchSectionDelegate()
- // })
- // }
- // (branchController as! BranchViewController).setId(id: requestIds[Int(pageIndex) - 3])
- // return branchController ?? UIViewController()
- return UIViewController()
- }
- }
- }
|