//
|
// WatchHistoryVC.swift
|
// XQMuse
|
//
|
// Created by 无故事王国 on 2024/8/22.
|
//
|
|
import UIKit
|
import FFPage
|
|
//收藏、观看历史、我的已购 共用
|
|
enum WatchType{
|
case collect
|
case history
|
case payment
|
}
|
|
class WatchHistoryVC: BaseVC {
|
@IBOutlet weak var btn_tap1: TapBtn!
|
@IBOutlet weak var label_title: UILabel!
|
@IBOutlet weak var label_subTitle: UILabel!
|
@IBOutlet weak var btn_tap2: TapBtn!
|
@IBOutlet weak var label2_title: UILabel!
|
@IBOutlet weak var label2_subTitle: UILabel!
|
@IBOutlet weak var view_menu: UIView!
|
private var currentPage:Int = 0
|
private var watchType:WatchType!
|
|
lazy var pageViewController:FFPageViewController = {
|
let pageVC = FFPageViewController()
|
pageVC.view.backgroundColor = .clear
|
pageVC.scrollview.backgroundColor = .clear
|
|
pageVC.scrollview.bounces = false
|
return pageVC
|
}()
|
|
private var lineImage:UIImageView = {
|
let img = UIImageView(image: UIImage(named: "icon_unline_1"))
|
return img
|
}()
|
|
override func viewDidLoad() {
|
super.viewDidLoad()
|
|
switch watchType {
|
case .collect:
|
title = "我的收藏"
|
label_title.text = "疗 愈"
|
label_subTitle.text = "Meditate"
|
label2_title.text = "课 程"
|
label2_subTitle.text = "course"
|
case .history:
|
title = "观看历史"
|
label_title.text = "疗 愈"
|
label_subTitle.text = "Meditate"
|
label2_title.text = "课 程"
|
label2_subTitle.text = "course"
|
case .payment:
|
title = "我的已购"
|
label_title.text = "已购课程"
|
label_subTitle.text = "Purchased course"
|
label2_title.text = "已购音频"
|
label2_subTitle.text = "Purchased audio"
|
case .none:
|
title = ""
|
}
|
}
|
|
init(type:WatchType) {
|
super.init(nibName: nil, bundle: nil)
|
self.watchType = type
|
}
|
|
required init?(coder: NSCoder) {
|
fatalError("init(coder:) has not been implemented")
|
}
|
|
override func setUI() {
|
view_menu.addSubview(lineImage)
|
|
lineImage.snp.makeConstraints { make in
|
make.centerX.equalTo(btn_tap1)
|
make.bottom.equalTo(btn_tap1.snp.bottom).offset(-10)
|
}
|
|
view.addSubview(pageViewController.view)
|
pageViewController.view.backgroundColor = .clear
|
pageViewController.delegate = self
|
pageViewController.view.snp.makeConstraints { make in
|
make.top.equalTo(view_menu.snp.bottom)
|
make.left.right.bottom.equalToSuperview()
|
}
|
}
|
|
@IBAction func tapAction(_ sender: TapBtn) {
|
|
let page = sender == btn_tap1 ? 0:1
|
|
pageViewController.scroll(toPage: page, animation: true)
|
}
|
}
|
|
extension WatchHistoryVC:FFPageViewControllerDelegate{
|
|
func pageViewController(_ pageViewController: FFPageViewController, currentPageChanged currentPage: Int) {
|
if self.currentPage != currentPage{
|
self.currentPage = currentPage
|
let tapBtn = currentPage == 0 ? btn_tap1:btn_tap2
|
UIView.animate(withDuration: 0.2) {
|
self.lineImage.snp.remakeConstraints { make in
|
make.centerX.equalTo(tapBtn!)
|
make.bottom.equalTo(tapBtn!.snp.bottom).offset(-10)
|
}
|
self.view.layoutIfNeeded()
|
}
|
}
|
}
|
|
func totalPagesOfpageViewController(_ pageViewConteoller: FFPageViewController) -> UInt {
|
return 2
|
}
|
|
func pageViewController(_ pageViewConteoller: FFPageViewController, controllerForPage page: Int) -> UIViewController {
|
|
|
switch watchType{
|
case .collect:
|
return WatchHistoryDetailVC(state: page+1, type: watchType)
|
case .history:
|
return WatchHistoryDetailVC(state: page+1, type: watchType)
|
case .payment:
|
var state = 1
|
if page == 0{
|
state = 2
|
}
|
return WatchHistoryDetailVC(state: state, type: watchType)
|
case .none:break
|
}
|
|
return UIViewController()
|
}
|
}
|