From e2c245035a515bb7f623706b66f05e8dfc2c2fef Mon Sep 17 00:00:00 2001
From: 无故事王国 <841720330@qq.com>
Date: 星期五, 14 六月 2024 17:39:07 +0800
Subject: [PATCH] fix
---
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift | 45 ++++++++++++++++++++++++++++++---------------
1 files changed, 30 insertions(+), 15 deletions(-)
diff --git a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
index e5200f8..1f988ac 100644
--- a/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
+++ b/DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_4_VC.swift
@@ -11,12 +11,13 @@
private var viewModel = FightAnswerViewModel()
- private var listen4Model:Listen4Model!
+ private var listenNewModel:ListenNewModel!
private var page:Int!
var rootViewModel:HomeListenFightViewModel!
private var answerIndex:IndexPath? //答案的Index
private var answerCount:Int = 0 //回答计数
+ private var filterItems = [[Listen1SubModel]]() //此类型特殊,需要数据清理
private lazy var stackView:UIStackView = {
let sta = UIStackView()
@@ -41,11 +42,15 @@
private var voicePlayer = VoicePlayer.share()
- required init(page:Int,listen4Model:Listen4Model){
+ required init(page:Int,listenNewModel:ListenNewModel){
super.init(nibName: nil, bundle: nil)
self.page = page
- self.listen4Model = listen4Model
- self.listen4Model.data.shuffle()
+ self.listenNewModel = listenNewModel
+ let temp1 = Array(listenNewModel.subjectList[page][0...1])
+ let temp2 = Array(listenNewModel.subjectList[page][2...3])
+
+ filterItems.append(temp1)
+ filterItems.append(temp2)
}
required init?(coder: NSCoder) {
@@ -102,7 +107,7 @@
private func setAnswerStackView(){
- guard viewModel.selectIndex.value != nil else{
+ guard let selectIndex = viewModel.selectIndex.value else{
alertError(msg: "请先听题");return
}
@@ -118,10 +123,11 @@
}
}
+ let answerModel = filterItems[selectIndex.section].filter({$0.isQuestion == 0}).first!
+ let answerId = answerModel.id
- let answerId = listen4Model.data[viewModel.selectIndex.value!.section].subject
var tempVoiceArray = [String]()
- for v in listen4Model.data[viewModel.selectIndex.value!.section].subjectList{
+ for v in filterItems[selectIndex.section]{
if v.id == answerId{
tempVoiceArray.append(v.correct)
tempVoiceArray.append(v.error.components(separatedBy: ",").first ?? "")
@@ -152,6 +158,11 @@
}
@objc func answerAction(btn:UIButton){
+
+ guard let selectIndex = viewModel.selectIndex.value else{
+ alertError(msg: "请先听题");return
+ }
+
var tempSubV:Lesson_4_AnswerView?
for subV in stackView.arrangedSubviews{
@@ -162,8 +173,9 @@
}
var answerModel:Listen1SubModel?
- for (index,v) in (listen4Model.data[viewModel.selectIndex.value!.section].subjectList).enumerated(){
- if v.id == listen4Model.data[viewModel.selectIndex.value!.section].subject{
+ for (index,v) in filterItems[selectIndex.section].enumerated(){
+ let m = filterItems[selectIndex.section].filter({$0.isQuestion == 0}).first
+ if v.id == m?.id{
answerModel = v
answerIndex = IndexPath(row: index, section: viewModel.selectIndex.value!.section)
}
@@ -174,6 +186,8 @@
answerType = .success
answerCount += 1
rootViewModel.correctNum += 1
+ let v = rootViewModel.answerCount.value + 1
+ rootViewModel.answerCount.accept(v)
}else{
answerType = .fail
rootViewModel.errorNum += 1
@@ -209,7 +223,9 @@
//回答完成,下一答题
if self.answerCount == 2{
- self.rootViewModel.answerItems[self.page] = self.listen4Model
+ let v = self.rootViewModel.answerCount.value + 1
+ self.rootViewModel.answerCount.accept(v)
+ self.rootViewModel.answerItems[self.page] = self.listenNewModel.subjectList[self.page]
self.voicePlayer.playerEnd()
NotificationCenter.default.post(name: NextLession_Noti, object: nil)
self.voicePlayer.playerEnd()
@@ -267,8 +283,7 @@
weakSelf.setAnswerStackView()
}
}
-
- let m = listen4Model.data[indexPath.section].subjectList[indexPath.row]
+ let m = filterItems[indexPath.section][indexPath.row]
if indexPath == answerIndex{
UIView.animate(withDuration: 0.4, delay: 0, usingSpringWithDamping: 0.4, initialSpringVelocity: 0.4,options: .layoutSubviews) {
cell.img_state.alpha = 1
@@ -279,7 +294,7 @@
cell.img_state.transform = .init(scaleX: 0.1, y: 0.1)
}
//问题
- if listen4Model.data[indexPath.section].subject == m.id{
+ if filterItems[indexPath.section][indexPath.row].isQuestion == 0{
cell.btn_handle.setImage(UIImage(named: "icon_question"), for: .normal)
cell.view_handle.isHidden = true
}else{
@@ -296,11 +311,11 @@
}
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
- return listen4Model.data[section].subjectList.count
+ return filterItems[section].count
}
func numberOfSections(in collectionView: UICollectionView) -> Int {
- return listen4Model.data.count
+ return filterItems.count
}
}
--
Gitblit v1.7.1