wallpaperAI/wallpaper_BProject/Home/C/NW_HomeVC.swift
2024-09-03 09:42:18 +08:00

178 lines
5.8 KiB
Swift

//
// NW_HomeVC.swift
// wallpaper_BProject
//
// Created by 16 on 2024/8/28.
//
import UIKit
import JXSegmentedView
import SnapKit
import FSPagerView
class NW_HomeVC: NW_RootVC {
@IBOutlet weak var pagerView: FSPagerView!{
didSet{
self.pagerView.register(FSPagerViewCell.self, forCellWithReuseIdentifier: "NW_PGBannerCell")
}
}
// var blocklive:(()->())?
// var blocknew:(()->())?
// var blockpopu:(()->())?
lazy var viewcontrollers: [UIViewController] = { makeExampleViewControlers() }()
var segmentedPageVC: SegmentedPageViewController!
override func viewDidLoad() {
super.viewDidLoad()
setFSpageV()
setpageVC()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(true)
self.navigationController?.navigationBar.isHidden = true
}
// MARK: - banner
func setFSpageV(){
self.pagerView.delegate = self
self.pagerView.dataSource = self
pagerView.transformer = FSPagerViewTransformer(type: .linear)
pagerView.automaticSlidingInterval = 2.0
pagerView.isInfinite = true
pagerView.decelerationDistance = 2
pagerView.itemSize = CGSize(width: 240, height: 120)
pagerView.interitemSpacing = 10
// pageControl.numberOfPages = 3 //
// pageControl.currentPage = 0
// pageControl.currentPageIndicatorTintColor = UIColor.white //
// pageControl.pageIndicatorTintColor = UIColor.clear
}
func setpageVC(){
addSegmentedPageViewController()
customizeSegmentedPageViewController2()
}
private func addSegmentedPageViewController() {
segmentedPageVC = SegmentedPageViewController(
pages: [
.init(viewController: viewcontrollers[0],
icon: UIImage(named: "bg"),
selectedIcon: UIImage(named: "panda"),
title: ""),
.init(viewController: viewcontrollers[1],
icon: UIImage(named: "bg"),
selectedIcon: UIImage(named: "panda"),
title: ""),
.init(viewController: viewcontrollers[2],
icon: UIImage(named: "bg"),
selectedIcon: UIImage(named: "panda"),
title: "")
]
,segmentControllerFillMode: .proportionally)
self.addChild(segmentedPageVC)
view.addSubview(segmentedPageVC.view)
segmentedPageVC.view.frame = CGRect(x: 0, y: 250, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height - 250)
segmentedPageVC.didMove(toParent: self)
}
private func makeExampleViewControlers() -> [UIViewController] {
let vc1 = NW_JXOneVC()
// vc1.labelTitle = "First View Controller"
// vc1.view.backgroundColor = .systemYellow
let vc2 = NW_JXTwoVC()
// vc2.labelTitle = "Second View Controller"
// vc2.view.backgroundColor = .systemRed
let vc3 = NW_JXThreeVC()
// vc3.labelTitle = "Third View Controller"
// vc3.view.backgroundColor = .systemGreen
return [vc1, vc2, vc3]
}
}
extension NW_HomeVC {
private func customizeSegmentedPageViewController1() {
segmentedPageVC.segmentController.highlightColor = .systemRed
segmentedPageVC.segmentController.underlineHeight = 20
segmentedPageVC.segmentController.itemsHeight = 40
segmentedPageVC.segmentController.font = UIFont.systemFont(ofSize: 15, weight: .semibold)
segmentedPageVC.segmentController.textColor = .systemGray6
// segmentedPageVC.segmentController.underlineImage = UIImage(systemName: "triangle.fill")
}
private func customizeSegmentedPageViewController2() {
segmentedPageVC.segmentController.highlightColor = .label
segmentedPageVC.segmentController.font = UIFont.systemFont(ofSize: 16, weight: .bold)
segmentedPageVC.segmentController.textColor = .secondaryLabel
segmentedPageVC.segmentController.underlineHeight = 10
segmentedPageVC.segmentController.underlineImageViewCornerRadius = 5
segmentedPageVC.segmentController.underlineImage = nil
}
}
// MARK: - banner
extension NW_HomeVC:FSPagerViewDelegate,FSPagerViewDataSource{
public func numberOfItems(in pagerView: FSPagerView) -> Int {
return 6
}
public func pagerView(_ pagerView: FSPagerView, cellForItemAt index: Int) -> FSPagerViewCell {
let cell = pagerView.dequeueReusableCell(withReuseIdentifier: "NW_PGBannerCell", at: index)
//
cell.imageView?.image = UIImage(named: "banner_\(index)")
return cell
}
// func pagerView(_ pagerView: FSPagerView, didSelectItemAt index: Int) {
// print("Tapped item at index: \(index)")
//
//// var viewControllerToPresent: UIViewController?
//
// //
// switch index {
// case 0:
// if self.blocklive != nil{
// self.blocklive!()
// }
// case 1:
// if self.blockpopu != nil{
// self.blockpopu!()
// }
// case 2:
// if self.blocknew != nil{
// self.blocknew!()
// }
// default:
// break
// }
// }
}