fix
无故事王国
2024-06-26 46acca18a3d1744e1930f0bac7509a2a5959df1b
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_3_VC.swift
@@ -67,6 +67,9 @@
                        super.viewDidLoad()
                        navigationItem.titleView = UIView()
                        playIndex.insert(IndexPath(row: 0, section: 0))
                        listenNewModel.subjectList[page][0].isQuestion = 1
                        listenNewModel.subjectList[page][1].isQuestion = 1
                        listenNewModel.subjectList[page][3].isQuestion = 1
            }
            func restore(){
@@ -87,6 +90,7 @@
                                    collectionView.delegate = self
                                    collectionView.dataSource = self
                                    collectionView.showsVerticalScrollIndicator = false
                                    collectionView.contentInset = UIEdgeInsets(top: 33, left: 0, bottom: 0, right: 0)
                                    collectionView.backgroundColor = .clear
                                    view.addSubview(collectionView)
                        }
@@ -122,10 +126,7 @@
                                    v.removeFromSuperview()
                        }
                        if isPlayingIndex == IndexPath(row: 2, section: 0) || isPlayingIndex == IndexPath(row: 1, section: 1) || isPlayingIndex == IndexPath(row: 2, section: 1) || !force{
                                    var tempImageArray = [String]()
                                    tempImageArray.append(listenNewModel.subjectList[page][2].img)
                                    tempImageArray.append(listenNewModel.subjectList[page][4].img)
                                    tempImageArray.append(listenNewModel.subjectList[page][5].img)
@@ -133,7 +134,7 @@
                                    view.addSubview(stackView)
                                    stackView.snp.makeConstraints { make in
                                                make.right.equalToSuperview().offset(-82)
                                                make.centerY.equalToSuperview()
                                                make.centerY.equalToSuperview().offset(10)
                                                make.height.equalTo(52)
                                    }
@@ -160,7 +161,6 @@
                                    }
                                    tempAnswerViews.shuffle()
                                    stackView.addArrangedSubviews(tempAnswerViews)
                        }
            }
            @objc private func chooseAnswerAction(btn:UIButton){
@@ -171,9 +171,9 @@
                                    alertError(msg: "请先听题");return
                        }
                        if isPlayingIndex != nil {
                                    alertError(msg: "请先听题");return
                        }
//                        if isPlayingIndex != nil {
//                                    alertError(msg: "请先听题");return
//                        }
                        if answterCount == 0 && !playIndex.contains(IndexPath(row: 2, section: 0)){
                                    alertError(msg: "请先听题");return
@@ -206,7 +206,9 @@
                        }
                        if subV?.imageUrl == listenNewModel.subjectList[page][valueIndex].img{
                                    listenNewModel.subjectList[page][valueIndex].isAnster = true
                                    answerType = .success
                                    subV?.alpha = 0
                                    voicePlayer.playSuccessVoice()
                        }else{
                                    answerType = .fail
@@ -241,24 +243,52 @@
                                                }
                                                guard ansterIndePath != nil else {return}
                                                self.viewModel.selectIndex.accept(nil)
                                                if let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_ListenFight_lesson_3_CCell", for: ansterIndePath!) as? ListenFight_lesson_3_CCell{
                                                            var newFrame = cell.img_cover.convert(cell.img_cover.bounds, to: self.view)
                                                            newFrame.origin.x += 0
                                                            newFrame.origin.y += 0
                                                            let successImage = UIImageView(image: UIImage(named: "icon_success"))
                                                            successImage.bounds = CGRect(x: 0, y: 0, width: 75, height: 75)
                                                            successImage.center = newFrame.center
                                                            successImage.transform = .init(scaleX: 0.1, y: 0.1)
                                                            successImage.alpha = 0
                                                            successImage.layoutIfNeeded()
                                                            self.view.addSubview(successImage)
                                                            UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.4, initialSpringVelocity: 0.4) {
                                                                        successImage.transform = .init(scaleX: 1.0, y: 1.0)
                                                                        successImage.alpha = 1
                                                            }
                                                            UIView.animate(withDuration: 0.5, delay: 3) {
                                                                        successImage.transform = .init(scaleX: 0.1, y: 0.1)
                                                                        successImage.alpha = 0
                                                            }completion: { _ in
                                                                        successImage.removeFromSuperview()
                                                            }
                                                            UIView.animate(withDuration: 0.4) {
                                                                        copyView?.frame = newFrame
                                                            } completion: { _ in
                                                                        self.answterCount += 1
                                                                        let cell = self.collectionView.cellForItem(at: self.viewModel.selectIndex.value!) as! ListenFight_lesson_3_CCell
                                                                        self.isPlayingIndex = self.viewModel.selectIndex.value
                                                                        cell.isPlaying(isplaying: true)
                                                                        self.voicePlayer.playerAt(url: self.listenNewModel.subjectList[self.page][valueIndex].correct)
                                                                        let teamId = self.listenNewModel.data?.id.components(separatedBy: ",")[self.page]
                                                                        let answerId = self.listenNewModel.subjectList[self.page][valueIndex].id
                                                                        self.rootViewModel.insertCorrectAnswer(teamId: teamId, answerId: answerId)
                                                                        for v in self.stackView.arrangedSubviews{
                                                                                    v.removeFromSuperview()
                                                                        }
                                                                        DispatchQueue.main.asyncAfter(deadline: .now()+1.0) {
                                                                                    self.setAnswerStackView()
                                                                                    self.viewModel.selectIndex.accept(nil)
                                                                                    let v = self.rootViewModel.answerCount.value + 1
                                                                                    self.rootViewModel.answerCount.accept(v)
                                                                                    self.collectionView.reloadData()
@@ -274,7 +304,10 @@
                                                            subV?.btn_fullscreen.alpha = 0
                                                }completion: { _ in
                                                            DispatchQueue.main.asyncAfter(deadline: .now()+1.5) {
                                                                        self.setAnswerStackView(force: true)
                                                                        self.islisten  = false
                                                                        for v in self.stackView.arrangedSubviews{
                                                                                    v.removeFromSuperview()
                                                                        }
                                                            }
                                                }
                                    default:break
@@ -331,7 +364,7 @@
                        if section == 0{
                                    return CGSize.zero
                        }
                        return CGSizeMake(JQ_ScreenW, 100)
                        return CGSizeMake(JQ_ScreenW, 65)
            }
}
@@ -344,7 +377,9 @@
                        cell.canClick(playIndex.contains(indexPath))
                        cell.palyVoiceAt {[weak self] index in
                                    guard let weakSelf = self else { return }
                                    weakSelf.isPlayingIndex = index
                                    weakSelf.viewModel.selectIndex.accept(index)
                                    weakSelf.voicePlayer.playerEnd()
@@ -354,9 +389,23 @@
                                                weakSelf.voicePlayer.playerAt(url:  weakSelf.listenNewModel.subjectList[weakSelf.page][indexPath.row].correct)
                                    }
                                    weakSelf.viewModel.selectIndex.accept(index)
                                     //点击答案,就显示
                                    weakSelf.setAnswerStackView()
                                    if index == IndexPath(row: 2, section: 0) || index == IndexPath(row: 1, section: 1) || index == IndexPath(row: 2, section: 1){
                                                var model:Listen1SubModel?
                                                if indexPath.section == 0{
                                                            model = weakSelf.listenNewModel.subjectList[weakSelf.page][indexPath.row]
                                                }
                                                if indexPath.section == 1{
                                                            model = weakSelf.listenNewModel.subjectList[weakSelf.page][indexPath.row + 3]
                                                }
                                                if model?.isAnster == false{
                                                            //点击答案,就显示
                                                            weakSelf.setAnswerStackView()
                                                }
                                    }
                                    collectionView.reloadItems(at: [index])
                        }