12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- //
- // MeTabBarController.swift
- // JiaPeiManage
- //
- // Created by Ning.ge on 2023/6/26.
- //
- import UIKit
- import ReactorKit
- import RxCocoa
- import RxSwift
- final class MeTabBarController: UITabBarController, View {
-
- // MARK: Constants
-
- fileprivate struct Metric {
- static let tabBarHeight = 50.f
- }
- let bgView = UIView.init().then {
- $0.backgroundColor = .db_tbbg
- }
- // MARK: Properties
-
- var disposeBag = DisposeBag()
- init(
- reactor: MainTabBarViewReactor,
- advancetViewController:MeTraineeListViewController,
- officialViewController:MeTraineeListViewController
- ) {
- defer { self.reactor = reactor }
- super.init(nibName: nil, bundle: nil)
- self.viewControllers = [advancetViewController,
- officialViewController]
- .map{ (viewController) -> UINavigationController in
- let navigationController = MainNavigationController(rootViewController: viewController)
- // navigationController.tabBarItem.imageInsets.top = 5
- // navigationController.tabBarItem.imageInsets.bottom = 5
- navigationController.tabBarItem.titlePositionAdjustment = UIOffset(horizontal: 0, vertical: -3)
- return navigationController
- }
- // 获取当前 tabBar 的选中项
- if let items = self.tabBar.items {
- for item in items {
- // 设置选中项的标题字体和颜色
- item.setTitleTextAttributes([NSAttributedString.Key.font: NYFont.SysFont.sys_10,
- NSAttributedString.Key.foregroundColor: UIColor("#30B05C") as Any],
- for: .selected)
- }
- }
-
- self.tabBar.insertSubview(bgView, at: 0)
- self.selectedIndex = 1
- self.tabBar.barTintColor = .db_tbbg
- self.tabBar.tintColor = UIColor("#30B05C")
- }
-
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- // MARK: Configuring
-
- func bind(reactor: MainTabBarViewReactor) {
-
- self.rx.didSelect
- .scan((nil, nil)) { state, viewController in
- return (state.1, viewController)
- }.subscribe(onNext: { (fromVc,toVc) in
-
- // if fromVc == toVc || fromVc == nil {
- // TogetherDataManager.refreshDataForTab(toVc, true)
- // } else {
- // TogetherDataManager.refreshDataForTab(toVc, false)
- // }
- // if TogetherDataManager.homePageController(toVc) == nil {
- // TogetherDataManager.referenceDate = Date()
- // }
- }).disposed(by: disposeBag)
- }
-
- override func viewDidLayoutSubviews() {
- super.viewDidLayoutSubviews()
- if #available(iOS 11.0, *) {
- self.tabBar.height = Metric.tabBarHeight + self.view.safeAreaInsets.bottom
- } else {
- self.tabBar.height = Metric.tabBarHeight
- }
- self.bgView.frame = CGRect(x: 0, y: 0, width: Int(self.view.width), height: Int(self.tabBar.height))
- self.tabBar.bottom = self.view.height
- }
- }
|