无故事王国
2025-08-10 9d8138cb1690c4c1990535d0507eb17cdbe497f9
DolphinEnglishLearnStudent/Moudle/Home/Listen/View/ChooseLevelView.swift
@@ -11,123 +11,123 @@
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
            private var limitLevel:Int = 0
    @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!
            override func awakeFromNib() {
                        super.awakeFromNib()
                        alpha = 0
                        transform = .init(scaleX: 0.1, y: 0.1)
                        layoutIfNeeded()
                        btn_level1.alpha = 0.5
                        btn_level2.alpha = 0.5
                        btn_level3.alpha = 0.5
    private var clouseLevel:((Int)->Void)!
    private var cancelClouse:(()->Void)!
    private var level:Int = 0
    private var limitLevel:Int = 0
                     btn_level3.tag = 12
                     btn_level2.tag = 11
                     btn_level1.tag = 10
    override func awakeFromNib() {
        super.awakeFromNib()
        alpha = 0
        transform = .init(scaleX: 0.1, y: 0.1)
        layoutIfNeeded()
        btn_level1.alpha = 0.5
        btn_level2.alpha = 0.5
        btn_level3.alpha = 0.5
            }
        btn_level3.tag = 12
        btn_level2.tag = 11
        btn_level1.tag = 10
            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}
                        }
    static func show(canLevel:Int,clouse:@escaping (Int)->Void,cancelClouse:@escaping()->Void){
                        guard needLoad else {return}
        var needLoad:Bool = true
        for v in sceneDelegate?.window?.subviews ?? []{
            if v is ChooseLevelView{needLoad = false}
        }
                        let levelView = ChooseLevelView.jq_loadNibView()
                        levelView.limitLevel = canLevel
                        levelView.clouseLevel = clouse
                        levelView.cancelClouse = cancelClouse
                        sceneDelegate?.window?.addSubview(levelView)
                        levelView.frame = sceneDelegate?.window?.frame ?? .zero
        guard needLoad else {return}
                        switch canLevel {
                                    case 2:
                                                levelView.btn_level3.alpha = 1
        let levelView = ChooseLevelView.jq_loadNibView()
        levelView.limitLevel = canLevel
        levelView.clouseLevel = clouse
        levelView.cancelClouse = cancelClouse
        sceneDelegate?.window?.addSubview(levelView)
        levelView.frame = sceneDelegate?.window?.frame ?? .zero
                                                fallthrough
                                    case 1:
                                                levelView.btn_level2.alpha = 1
        switch canLevel {
        case 2:
            levelView.btn_level3.alpha = 1
                                                fallthrough
                                    case 0:
                                                levelView.btn_level1.alpha = 1
                                    default:
                                                levelView.btn_level1.alpha = 1
                        }
            fallthrough
        case 1:
            levelView.btn_level2.alpha = 1
                        UIView.animate(withDuration: 0.4) {
                                    levelView.transform = .init(scaleX: 1.0, y: 1.0)
                                    levelView.alpha = 1
                        } completion: { _ in
                                    levelView.layoutIfNeeded()
                        }
            }
            fallthrough
        case 0:
            levelView.btn_level1.alpha = 1
        default:
            levelView.btn_level1.alpha = 1
        }
            @IBAction func chooseAction(_ sender: QMUIButton) {
        UIView.animate(withDuration: 0.4) {
            levelView.transform = .init(scaleX: 1.0, y: 1.0)
            levelView.alpha = 1
        } completion: { _ in
            levelView.layoutIfNeeded()
        }
    }
                        level = sender.tag - 10
    @IBAction func chooseAction(_ sender: QMUIButton) {
                        guard level <= limitLevel else {
                                    DispatchQueue.main.asyncAfter(deadline: .now()+0.1) {
                                                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
        guard level <= limitLevel else {
            DispatchQueue.main.asyncAfter(deadline: .now()+0.1) {
                sender.alpha = 0.5
                sender.isSelected = false
            }
            alertError(msg: "请先完成上一难度再挑战");return
        }
                                    if subView.isSelected{
                                                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()
                        }
            }
            if subView.isSelected{
                level = sender.tag - 10
            }
        }
    }
            @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()
    @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()
        }
    }
                                    if self.btn_level1.isSelected{
                                                self.clouseLevel(0)
                                    }
    @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()
                                    if self.btn_level2.isSelected{
                                                self.clouseLevel(1)
                                    }
            if self.btn_level1.isSelected{
                self.clouseLevel(0)
            }
                                    if self.btn_level3.isSelected{
                                                self.clouseLevel(2)
                                    }
            if self.btn_level2.isSelected{
                self.clouseLevel(1)
            }
            if self.btn_level3.isSelected{
                self.clouseLevel(2)
            }
                        }
            }
        }
    }
}