CNLiveMineEarnViewController.swift 5.4 KB
//
//  CNLiveMineEarnViewController.swift
//  metaCode
//
//  Created by open on 2023/6/28.
//

import Foundation
import JXSegmentedView
import JXPagingView
import MJRefresh

let kCNLiveSectionTitleHeight = 70//标题显示
let kCNLiveSectionHeaderHeight = 140//头视图高度 加上说明200

extension JXPagingListContainerView: JXSegmentedViewListContainer {}

class CNLiveMineEarnViewController: CNLiveBaseViewController, JXPagingViewDelegate {
    
    func tableHeaderViewHeight(in pagingView: JXPagingView) -> Int {
        return Int(kCNLiveSectionHeaderHeight)
    }
    
    func tableHeaderView(in pagingView: JXPagingView) -> UIView {
        return headerView
    }
    
    func heightForPinSectionHeader(in pagingView: JXPagingView) -> Int {
        return Int(kCNLiveSectionTitleHeight)
    }
    
    func viewForPinSectionHeader(in pagingView: JXPagingView) -> UIView {
        return categoryView
    }
    
    func numberOfLists(in pagingView: JXPagingView) -> Int {
        return 2
    }
    
    func pagingView(_ pagingView: JXPagingView, initListAtIndex index: Int) -> JXPagingViewListViewDelegate {
        return (viewControllers.object(at: index) as! JXPagingViewListViewDelegate)
    }
    
    
    lazy var viewControllers: NSMutableArray = {
        let viewControllers = NSMutableArray.init()
        viewControllers.add(CNLiveMineEarnListViewController.init(show_type: .record))
        viewControllers.add(CNLiveMineEarnListViewController.init(show_type: .balance))
        return viewControllers
    }()
    
    lazy var dataSource: JXSegmentedTitleDataSource = {
        let dataSource = JXSegmentedTitleDataSource()
        dataSource.titles = ["积分记录","元码余额记录"]
        dataSource.isTitleMaskEnabled = true
        dataSource.itemWidth = (KSreenWidth - 105)/2
        dataSource.itemSpacing = 0
        dataSource.titleNormalFont = Font_16_Fit
        dataSource.titleSelectedFont = Font_16_Fit
        dataSource.titleNormalColor = HexColor("#999999")!
        dataSource.titleSelectedColor = HexColor("#333333")!
        return dataSource
    }()
    
    lazy var pagingView: JXPagingView = {
        let pagingView = JXPagingView.init(delegate: self, listContainerType: .scrollView)
        pagingView.frame = CGRectMake(0, KNavigationHeight, KSreenWidth, KSreenHeight - get_system_nav_height() - get_system_tabbar_ui_offsetHeight())
        pagingView.backgroundColor = .clear
        pagingView.mainTableView.backgroundColor = .clear
        pagingView.pinSectionHeaderVerticalOffset = 0
        pagingView.automaticallyDisplayListVerticalScrollIndicator = false
        pagingView.listContainerView.isCategoryNestPagingEnabled = true
        pagingView.listContainerView.scrollView.panGestureRecognizer.require(toFail: (self.navigationController?.interactivePopGestureRecognizer)!)
        pagingView.mainTableView.panGestureRecognizer.require(toFail: (self.navigationController?.interactivePopGestureRecognizer)!)
        categoryView.listContainer = pagingView.listContainerView
        return pagingView
    }()
    
    lazy var categoryView: JXSegmentedView = {
        let categoryView = JXSegmentedView.init(frame: CGRectMake(20, KNavigationHeight, KSreenWidth - 40, CGFloat(kCNLiveSectionTitleHeight)))
        categoryView.dataSource = dataSource
        categoryView.collectionView.backgroundColor = .clear
        categoryView.backgroundColor = .clear
        
        let lineView = JXSegmentedIndicatorBackgroundView.init()
        lineView.indicatorColor = .white
        lineView.indicatorHeight = 40
        lineView.indicatorWidthIncrement = 0
        lineView.indicatorCornerRadius = 5
        categoryView.indicators = [lineView]
        
        let radiusView = UIView(frame: CGRect(x: 20, y: 0, width: Int(KSreenWidth) - 40, height: kCNLiveSectionTitleHeight))
        radiusView.backgroundColor = .clear
        radiusView.addCorner(conrners: [.topLeft,.topRight], radius: 10)
        radiusView.layer.borderColor = UIColor.white.cgColor
        radiusView.layer.borderWidth = 10
        categoryView.insertSubview(radiusView, belowSubview: categoryView.collectionView)
        
        return categoryView
    }()
    
    lazy var headerView: MineEarnHeaderView = {
        let headerView = MineEarnHeaderView.init(frame: CGRectMake(0, 0, KSreenWidth, CGFloat(kCNLiveSectionHeaderHeight)), checkModel: _checkModel)
        headerView.backgroundColor = .clear
        return headerView
    }()
    
    var _index : Int!
    var _checkModel: MinePointCheckInModel!
    init(index: Int, checkModel:MinePointCheckInModel) {
        super.init(nibName: nil, bundle: nil)
        _index = index
        _checkModel = checkModel
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        categoryView.selectItemAt(index: _index)
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationBarHidden = false
        titleName = "我的收益"
        
        view.addSubview(pagingView)
        pagingView.listContainerView.didClickSelectedItem(at: _index)
        
        pagingView.mainTableView.mj_header = MJRefreshNormalHeader.init(refreshingBlock: { [self] in
            pagingView.mainTableView.mj_header?.endRefreshing()
//            self!.pageNum = 1
//            self!.loadDataWithTradRecord(page: self!.pageNum)
        })
    }
}