add
无故事王国
2024-05-28 64d4343b54e747804656a3fb7eca4a2d14d6e5de
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
//
//  GameBeginTipView.swift
//  DolphinEnglishLearnStudent
//
//  Created by 无故事王国 on 2024/5/28.
//
 
import UIKit
import JQTools
import QMUIKit
 
class GameBeginTipView: UIView,JQNibView{
 
                @IBOutlet weak var view_container: UIView!
                @IBOutlet weak var label_time: UILabel!
                
                private var completeClouse:(()->Void)!
                override func awakeFromNib() {
                                super.awakeFromNib()
                                alpha = 0
                                transform = .init(scaleX: 0.1, y: 0.1)
                                layoutIfNeeded()
                }
 
                static func show(clouse:@escaping ()->Void){
                                let levelView = GameBeginTipView.jq_loadNibView()
                                levelView.completeClouse = clouse
                                sceneDelegate?.window?.addSubview(levelView)
                                levelView.frame = sceneDelegate?.window?.frame ?? .zero
 
                                UIView.animate(withDuration: 0.4) {
                                                levelView.transform = .init(scaleX: 1.0, y: 1.0)
                                                levelView.alpha = 1
                                } completion: { _ in
                                                levelView.layoutIfNeeded()
                                                var time:Int = 5
                                                Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { timer in
                                                                time -= 1
                                                                levelView.label_time.text = "\(time)"
                                                                levelView.animation()
                                                                if time <= 0{
                                                                                timer.invalidate()
                                                                                UIView.animate(withDuration: 0.4) {
                                                                                                levelView.transform = .init(scaleX: 0.1, y: 0.1)
                                                                                                levelView.alpha = 0
                                                                                } completion: { _ in
                                                                                                levelView.removeFromSuperview()
                                                                                                levelView.completeClouse()
                                                                                }
                                                                }
                                                }
                                }
                }
 
                private func animation(){
                                let aniLabel = label_time.customCopy()
                                aniLabel.frame = label_time.frame
                                self.view_container.addSubview(aniLabel)
                                UIView.animate(withDuration: 1.0) {
                                                aniLabel.alpha = 0
                                                aniLabel.transform = .init(scaleX: 2.5, y: 2.5)
                                }completion: { _ in
                                                aniLabel.removeFromSuperview()
                                }
                }
 
                @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.completeClouse()
                                }
                }
}
 
private extension UILabel{
                func customCopy()->UILabel{
                                let copyLabel = UILabel()
                                copyLabel.font = self.font
                                copyLabel.alpha = 1
                                copyLabel.text = self.text
                                copyLabel.textColor = self.textColor
                                copyLabel.textAlignment = .center
                                return copyLabel
                }
}