fix
无故事王国
2024-06-06 6f7f02d5c8880ff670b2c694fe61f5af5a6e3e36
DolphinEnglishLearnStudent/Moudle/Home/HomeListenFight_lesson_1_VC.swift
@@ -18,12 +18,12 @@
class HomeListenFight_lesson_1_VC: BaseVC {
            private var viewModel = FightAnswerViewModel()
            private var listen1Model:Listen1Model!
            private var randomElement:Listen1SubModel?
            private var page:Int!
            var rootViewModel:HomeListenFightViewModel!
            private lazy var menuView:StudyHandleView = {
                        let menu = StudyHandleView.jq_loadNibView()
                        menu.listenType = .lesson1
                        return menu
            }()
            private var menuView:StudyHandleView = StudyHandleView.jq_loadNibView()
            private lazy var collectionView:UICollectionView = {
                        let flowLayout = UICollectionViewFlowLayout()
@@ -37,9 +37,31 @@
                        return collection
            }()
            required init(page:Int,listen1Model:Listen1Model){
                        super.init(nibName: nil, bundle: nil)
                        self.page = page
                        self.listen1Model = listen1Model
            }
            required init?(coder: NSCoder) {
                        fatalError("init(coder:) has not been implemented")
            }
            override func viewDidLoad() {
                        super.viewDidLoad()
                        navigationItem.titleView = UIView()
                        collectionView.reloadData()
                        menuView.listenType = .lesson1
//                        collectionView.isUserInteractionEnabled = false
                        //制造随机
                        randomElement = listen1Model.subjectList.randomElement()
                        menuView.vioceSoundUrl = randomElement?.correct
                        VoicePlayer.share().playEnd {[weak self] in
                                    self?.menuView.reset()
                        }
            }
            override func setUI() {
@@ -71,11 +93,16 @@
                                    guard let index = index else { return }
                                    //判断选中是否正确逻辑
                                    if let cell = self?.collectionView.dequeueReusableCell(withReuseIdentifier: "_ListenFight_lesson_1_CCell", for: index) as? ListenFight_lesson_1_CCell{
                                                var answer:Fight_lessonType = .none
                                                answer = .success
                                                if self?.randomElement?.id == self?.listen1Model.subjectList[index.row].id{
                                                            answer = .success
                                                            self?.rootViewModel.correctNum += 1
                                                }else{
                                                            answer = .fail
                                                            self?.rootViewModel.errorNum += 1
                                                }
                                                switch answer {
                                                            case .success:
@@ -83,7 +110,8 @@
                                                                        self?.answerSuccess(cell)
                                                            case .fail:
                                                                        self?.viewModel.answerType.accept(.fail)
                                                                        self?.answerFail()
//                                                                        self?.collectionView.isUserInteractionEnabled = false
                                                                        self?.answerFail(errorSound: self?.listen1Model.subjectList[index.row].error)
                                                            default:break
                                                }
                                    }
@@ -93,7 +121,7 @@
            //回答正确
            private func answerSuccess(_ cell:ListenFight_lesson_1_CCell){
                        menuView.snp.removeConstraints()
                        collectionView.isUserInteractionEnabled = false
//                        collectionView.isUserInteractionEnabled = false
                        let v = cell.view_topHandle.convert(cell.bounds, to: self.view)
                        UIView.animate(withDuration: 0.3) {
                                    self.menuView.snp.updateConstraints { make in
@@ -107,15 +135,17 @@
                                    self.collectionView.reloadData()
                                    DispatchQueue.main.asyncAfter(deadline: .now()+2){
                                                NotificationCenter.default.post(name: NextLession_Noti, object: nil)
                                                self.collectionView.isUserInteractionEnabled = true
//                                                self.collectionView.isUserInteractionEnabled = true
                                                self.viewModel.answerType.accept(.none)
                                                self.viewModel.selectIndex.accept(nil)
                                                self.rootViewModel.answerItems[self.page] = self.listen1Model
                                    }
                        }
            }
            private func answerFail(){
            private func answerFail(errorSound:String?){
                        self.collectionView.reloadData()
                        VoicePlayer.share().playerAt(url: errorSound)
            }
}
@@ -136,10 +166,11 @@
                        }else{
                                    cell.setState(state: .none)
                        }
                        cell.setListen1SubModel(listen1Model.subjectList[indexPath.row])
                        return cell
            }
            func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
                        return 4
                        return min(4,listen1Model.subjectList.count)
            }
}