无故事王国
5 天以前 510991a68acc59e22602d95582e3b1cabdd093c2
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
//
//  ListenFight_Game_CCell.swift
//  DolphinEnglishLearnStudent
//
//  Created by 无故事王国 on 2024/5/28.
//
 
import UIKit
import Lantern
 
class ListenFight_Game_CCell: UICollectionViewCell {
 
                @IBOutlet weak var view_container: UIView!
                @IBOutlet weak var view_top: UIView!
                @IBOutlet weak var img_state: UIImageView!
                @IBOutlet weak var img_cover: UIImageView!
                @IBOutlet weak var view_grayHeiCons: NSLayoutConstraint!
                @IBOutlet weak var img_statusWeight: NSLayoutConstraint!
                
                override func awakeFromNib() {
        super.awakeFromNib()
                                img_state.alpha = 0
    }
 
                func setState(state:Fight_lessonType){
                                img_state.alpha = 0
                                img_state.transform = .init(scaleX: 0.1, y: 0.1)
                                img_state.layoutIfNeeded()
                                switch state {
                                                case .success:
                                                                img_state.image = UIImage(named: "icon_success")
                                                                UIView.animate(withDuration: 0.6, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.4, options: .layoutSubviews) {
                                                                                self.img_state.alpha = 1
                                                                                self.img_state.transform = .init(scaleX: 1, y: 1)
                                                                }
                                                                DispatchQueue.main.asyncAfter(deadline: .now()+1) {
                                                                                UIView.animate(withDuration: 0.6) {
                                                                                                self.img_state.alpha = 0
                                                                                                self.img_state.transform = .init(scaleX: 0.1, y: 0.1)
                                                                                }
                                                                }
                                                case .fail:
                                                                img_state.image = UIImage(named: "icon_fail")
                                                                UIView.animate(withDuration: 0.6, delay: 0, usingSpringWithDamping: 0.3, initialSpringVelocity: 0.4, options: .layoutSubviews) {
                                                                                self.img_state.alpha = 1
                                                                                self.img_state.transform = .init(scaleX: 1, y: 1)
                                                                }
                                                                DispatchQueue.main.asyncAfter(deadline: .now()+1) {
                                                                                UIView.animate(withDuration: 0.6) {
                                                                                                self.img_state.alpha = 0
                                                                                                self.img_state.transform = .init(scaleX: 0.1, y: 0.1)
                                                                                }
                                                                }
                                                case .none:
                                                                img_state.alpha = 0
                                                                img_state.transform = .init(scaleX: 0.1, y: 0.1)
                                }
                }
 
                func setModel(_ m:Listen1SubModel){
                                img_cover.sd_setImage(with: URL(string: m.img))
                }
 
                @IBAction func fullScreenAction(_ sender: UIButton) {
 
                                let lantern = Lantern()
                                lantern.numberOfItems = { () in
                                                return 1
                                }
 
                                lantern.cellClassAtIndex = { _ in
                                                LanternImageCell.self
                                }
 
 
                                lantern.transitionAnimator = LanternZoomAnimator(previousView: { [weak self] index -> UIView? in
                                                return self?.img_cover
                                })
 
 
                                // UIPageIndicator样式的页码指示器
                                lantern.pageIndicator = LanternDefaultPageIndicator()
 
                                lantern.pageIndex = 0
 
                                lantern.reloadCellAtIndex = { context in
                                                let lanternCell = context.cell as? LanternImageCell
                                                lanternCell?.imageView.image = self.img_cover.image
                                }
                                //不要使用push
                                lantern.show()
                }
                
                override func layoutSubviews() {
                                super.layoutSubviews()
                                view_top.jq_addCorners(corner: [.topLeft,.topRight], radius: 8)
                                jq_cornerRadius = 8
                                view_grayHeiCons.constant = (self.width - 10) * 0.1667
                                img_statusWeight.constant = self.width * 0.2333
                }
}