178 lines
5.8 KiB
Swift
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
|
|
// }
|
|
// }
|
|
|
|
}
|