From 572899a6a72fb71c0a29ec5774de3b61ddd4bd7e Mon Sep 17 00:00:00 2001 From: 杨锴 <841720330@qq.com> Date: 星期四, 15 八月 2024 18:59:56 +0800 Subject: [PATCH] UI --- XQMuse/Root/Course/CourseVC.swift | 143 ++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 134 insertions(+), 9 deletions(-) diff --git a/XQMuse/Root/Course/CourseVC.swift b/XQMuse/Root/Course/CourseVC.swift index 5281bff..21f7221 100644 --- a/XQMuse/Root/Course/CourseVC.swift +++ b/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() + } } -- Gitblit v1.7.1