CNMetaCodeHomePageController.swift 3.95 KB
//
//  CNMetaCodeHomePageController.swift
//  metaCode
//
//  Created by daojian on 2023/6/1.
//

import Foundation
import UIKit
import YYCategories

let Width: CGFloat  = UIScreen.main.bounds.size.width
let Height: CGFloat = UIScreen.main.bounds.size.height

class CNMetaCodeHomePageController:CNLiveBaseViewController, NewPagedFlowViewDelegate, NewPagedFlowViewDataSource, CNCustomIndexViewDelegate{
    
    
    
    private var tabBarY:CGFloat = 0.0
    
    // MARK: - 懒加载
    ///数据源
    lazy var dataArray: NSMutableArray = {
        
        return NSMutableArray.init()
    }()
    
    ///左右滑动分页view
    lazy var pageFlowView: NewPagedFlowView = {
        let pageFlowView = NewPagedFlowView.init(frame: CGRectMake(0, 0, Width, Height))

        pageFlowView.delegate = self
        pageFlowView.dataSource = self
        pageFlowView.minimumPageAlpha = 0.1
        pageFlowView.isCarousel = false
        pageFlowView.orientation = .horizontal
        pageFlowView.leftRightMargin = 20
        pageFlowView.isOpenAutoScroll = false
        
        //左右图片的距离顶部和底部的高度
        pageFlowView.topBottomMargin = 100
        
        return pageFlowView
        
    }()
    
    ///背景
    var backgroupView: CNHomePageBackgroupView = {
        let backgroupView = CNHomePageBackgroupView.init(frame: CGRect(x: 0, y: 0, width: KSreenWidth, height: KSreenWidth*1.333))
        return backgroupView
    }()
    
    //MARK: 生命周期方法
    override func viewDidLoad() {
        super.viewDidLoad()
        
        self.tabBarY = (self.tabBarController?.tabBar.top)!
        

        for i in (0..<6) {
            self.dataArray.add("122")
        }
        
        self.setupUI()
        
//        self.tabBarController?.tabBar.top = self.tabBarY + KSreenHeight

    }
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
    }
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        self.view.height = KSreenHeight
        

    }
    // MARK: - 添加UI
    func setupUI(){
        self.view.backgroundColor = KVCBackgroupColor
        self.view.addSubview(self.backgroupView)
        self.view.addSubview(self.pageFlowView)
        self.pageFlowView.reloadData()
        
    }
    
    // MARK: - NewPagedFlowView代理
    
    func numberOfPages(in flowView: NewPagedFlowView!) -> Int {
        self.dataArray.count
    }
    
    func flowView(_ flowView: NewPagedFlowView!, cellForPageAt index: Int) -> PGIndexBannerSubiew! {
        var bannerView:CNCustomIndexView? = flowView.dequeueReusableCell() as? CNCustomIndexView
        
        if (bannerView == nil) {
            bannerView = CNCustomIndexView.init(frame: CGRectMake(0, 0, Width-50, Height))
            bannerView?.tag = index + 100
            bannerView?.layer.cornerRadius = 4
            bannerView?.layer.masksToBounds = false
        }
        bannerView?.superScrollView = flowView.scrollView
        bannerView?.associatedVCView = self.view
        bannerView?.delegate  = self
        return bannerView 
    }
    
    func sizeForPage(in flowView: NewPagedFlowView!) -> CGSize {
        return CGSize(width: Width-50, height: Height)
    }
    
    //MARK: - CNCustomIndexView 代理方法
    func customIndexViewWillBeiginScroll(scrollView: UIScrollView) {
        self.view.height = KSreenHeight
    }
    func customIndexViewDidScroll(scrollView: UIScrollView) {
        //让tabbar跟随scrollView平移量进行移动
        let fabsOffset: CGFloat = abs(scrollView.contentOffset.y - KSreenHeight)
        self.tabBarController?.tabBar.top = self.tabBarY + fabsOffset
        
        //让背景view也跟随scrollView平移量的3倍速进行移动
        self.backgroupView.top = -fabsOffset*3
    }
   
    
    func customIndexViewDidEndScroll(scrollView: UIScrollView) {
        if scrollView.contentOffset.y == KSreenHeight {
            self.view.height = self.tabBarY
        }
    }
    
}