无故事王国
2024-07-04 a4a30347df295a77657a4b87ee3293ef38ece503
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
//
//  ChooseLevelView.swift
//  DolphinEnglishLearnStudent
//
//  Created by 无故事王国 on 2024/5/28.
//
 
import UIKit
import JQTools
import QMUIKit
 
class ChooseLevelView: UIView,JQNibView{
 
                @IBOutlet weak var view_container: UIView!
                @IBOutlet weak var tackView_level: UIStackView!
                @IBOutlet weak var btn_level3: QMUIButton!
                @IBOutlet weak var btn_level2: QMUIButton!
                @IBOutlet weak var btn_level1: QMUIButton!
                
                private var clouseLevel:((Int)->Void)!
                private var cancelClouse:(()->Void)!
                private var level:Int = 0
 
                override func awakeFromNib() {
                                super.awakeFromNib()
                                alpha = 0
                                transform = .init(scaleX: 0.1, y: 0.1)
                                layoutIfNeeded()
                                btn_level1.setTitleColor(.black.withAlphaComponent(0.3), for: .normal)
                                btn_level2.setTitleColor(.black.withAlphaComponent(0.3), for: .normal)
                                btn_level3.setTitleColor(.black.withAlphaComponent(0.3), for: .normal)
 
                }
 
                static func show(canLevel:Int,clouse:@escaping (Int)->Void,cancelClouse:@escaping()->Void){
 
                                var needLoad:Bool = true
                                for v in sceneDelegate?.window?.subviews ?? []{
                                                if v is ChooseLevelView{needLoad = false}
                                }
 
                                guard needLoad else {return}
 
                                let levelView = ChooseLevelView.jq_loadNibView()
                                levelView.clouseLevel = clouse
                                levelView.cancelClouse = cancelClouse
                                sceneDelegate?.window?.addSubview(levelView)
                                levelView.frame = sceneDelegate?.window?.frame ?? .zero
 
                                switch canLevel {
                                                case 2:
                                                                levelView.btn_level3.setTitleColor(.black.withAlphaComponent(0.6), for: .normal)
                                                                fallthrough
                                                case 1:
                                                                levelView.btn_level2.setTitleColor(.black.withAlphaComponent(0.6), for: .normal)
                                                                fallthrough
                                                case 0:
                                                                levelView.btn_level1.setTitleColor(.black.withAlphaComponent(0.6), for: .normal)
                                                default:
                                                                levelView.btn_level1.setTitleColor(.black.withAlphaComponent(0.6), for: .normal)
                                }
 
                                UIView.animate(withDuration: 0.4) {
                                                levelView.transform = .init(scaleX: 1.0, y: 1.0)
                                                levelView.alpha = 1
                                } completion: { _ in
 
                                }
                }
 
                @IBAction func chooseAction(_ sender: QMUIButton) {
 
                                guard sender.alpha == 1.0 else {
                                                sender.alpha = 0.5
                                                sender.isSelected = false
                                                alertError(msg: "请先完成上一难度再挑战");return
                                }
 
                                level = sender.tag - 10
                                for subView in tackView_level.arrangedSubviews as! [QMUIButton]{
                                                subView.isSelected = sender.tag == subView.tag
                                }
                }
 
                @IBAction func closeAction(_ sender: UIButton) {
                                UIView.animate(withDuration: 0.4) {
                                                self.transform = .init(scaleX: 0.1, y: 0.1)
                                                self.alpha = 0
                                } completion: { _ in
                                                self.removeFromSuperview()
                                                self.cancelClouse()
                                }
                }
 
                @IBAction func completeAction(_ sender: UIButton) {
                                UIView.animate(withDuration: 0.4) {
                                                self.transform = .init(scaleX: 0.1, y: 0.1)
                                                self.alpha = 0
                                } completion: { _ in
                                                self.removeFromSuperview()
                                                self.clouseLevel(self.level)
                                }
                }
}