UI
杨锴
2024-08-15 572899a6a72fb71c0a29ec5774de3b61ddd4bd7e
XQMuse/Root/Course/CourseVC.swift
@@ -6,24 +6,149 @@
//
import UIKit
import SPPageMenu
import JQTools
import FFPage
class CourseVC: BaseVC {
            private(set) var pageMenu:SPPageMenu = {
                        let pageMenu = SPPageMenu(frame: .zero, trackerStyle: .line)
                        // 追踪线
                        pageMenu.trackerWidth = 27.5
                        pageMenu.setTrackerHeight(11, cornerRadius:0)
                        pageMenu.trackerFollowingMode = .always
                        pageMenu.contentInset = UIEdgeInsets(top: 0, left: 19.5, bottom: 15, right: 19.5)
                        pageMenu.setItems(["官方推荐","导师专栏"], selectedItemIndex: 0)
                        pageMenu.backgroundColor = UIColor(hexString: "#F0F0F0")
                        pageMenu.tracker.image = UIImage(named: "icon_unline")
                        pageMenu.tracker.backgroundColor = .clear
                        // 分割线
                        pageMenu.dividingLine.backgroundColor = .clear
                        pageMenu.dividingLineHeight = 1
                        // item
                        pageMenu.spacing = 27.0
                        pageMenu.permutationWay = .scrollAdaptContent
                        // 字体
                        pageMenu.selectedItemTitleFont = Def_SourceHanSansCN_Regular(fontSize: 21)
                        pageMenu.unSelectedItemTitleFont = Def_SourceHanSansCN_Regular(fontSize: 16)
                        // 颜色
                        pageMenu.selectedItemTitleColor = UIColor(hexStr: "#252A23")
                        pageMenu.unSelectedItemTitleColor = UIColor(hexStr: "#A1A1A1")
                        return pageMenu
            }()
            lazy var pageViewController:FFPageViewController = {
                        let pageVC = FFPageViewController()
                        pageVC.view.backgroundColor = .clear
                        pageVC.scrollview.backgroundColor = .clear
                        pageVC.scrollview.bounces = false
                        return pageVC
            }()
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
            override func setUI() {
                        super.setUI()
                        let titleView = UIView()
                        titleView.frame = CGRect(x: 0, y: 0, width: 100, height: 40)
                        let titleL = UILabel()
                        titleL.font = Def_SourceHanSansCN_Regular(fontSize: 21)
                        titleL.text = "心泉课程"
                        titleL.textAlignment = .center
                        titleL.textColor = UIColor(hexStr: "#252A23")
                        titleL.frame = CGRect(x: 0, y: 0, width: 100, height: 19)
    /*
    // MARK: - Navigation
                        let subTitleL = UILabel()
                        subTitleL.font = Def_Agenda_Light(fontSize: 8)
                        subTitleL.text = "XIN QUAN"
                        subTitleL.textAlignment = .center
                        subTitleL.textColor = UIColor(hexStr: "#252A23")
                        subTitleL.frame = CGRect(x: 0, y: 20, width: 100, height: 19)
    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
    }
    */
                        titleView.addSubview(titleL)
                        titleView.addSubview(subTitleL)
                        navigationItem.titleView = titleView
                        let search = UIButton(type: .custom)
                        search.setImage(UIImage(named: "btn_search"), for: .normal)
                        search.addTarget(self, action: #selector(searchAction), for: .touchUpInside)
                        search.bounds = CGRect(origin: .zero, size:CGSize(width: 50, height: 30))
                        navigationItem.leftBarButtonItem = UIBarButtonItem(customView: search)
                        let voices = UIButton(type: .custom)
                        voices.setImage(UIImage(named: "btn_voices"), for: .normal)
                        voices.addTarget(self, action: #selector(settingvoiceAction), for: .touchUpInside)
                        voices.bounds = CGRect(origin: .zero, size:CGSize(width: 50, height: 30))
                        navigationItem.rightBarButtonItem = UIBarButtonItem(customView: voices)
                        pageMenu.delegate = self
                        view.addSubview(pageMenu)
                        pageMenu.snp.makeConstraints { make in
                                    make.left.right.equalToSuperview()
                                    make.height.equalTo(73.5)
                                    make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top)
                        }
                        view.addSubview(pageViewController.view)
                        pageViewController.view.backgroundColor = .clear
                        pageViewController.delegate = self
                        pageViewController.view.snp.makeConstraints { make in
                                    make.top.equalTo(pageMenu.snp.bottom)
                                    make.left.right.bottom.equalToSuperview()
                        }
            }
            @objc func searchAction(){
                        let vc = SearchVC()
                        push(vc: vc)
            }
            @objc func settingvoiceAction(){
                        let vc = BackgroundVoiceVC()
                        push(vc: vc)
            }
}
extension CourseVC:SPPageMenuDelegate{
            func pageMenu(_ pageMenu: SPPageMenu, itemSelectedAt index: Int) {
                        pageViewController.scroll(toPage: index, animation: true)
            }
}
extension CourseVC:FFPageViewControllerDelegate{
            func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
                        pageMenu.selectedItemIndex = currentPage
            }
            func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
                        return 2
            }
            func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
                        if page == 0{
                                    return CourseVCOfficalCommentVC()
                        }
                        if page == 1{
                                    return CourseVCTeacherSpecialVC()
                        }
                        return UIViewController()
            }
}