杨锴
2024-09-19 642175113bf6f2c90894e689dacda50278cad570
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
//
//  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 {
                                return WatchHistoryDetailVC(state: page+1, type: watchType)
                }
}