| | |
| | | class HomeListenFight_lesson_5_VC: BaseVC { |
| | | |
| | | private var viewModel = FightAnswerViewModel() |
| | | private var listen1Model:Listen1Model! |
| | | private var listenNewModel:ListenNewModel! |
| | | private var page:Int! |
| | | private var answterCount:Int = 0 //回答计数,用于确定角标 |
| | | private var playVoiceAt:Int? //播放声音的View |
| | |
| | | return label |
| | | }() |
| | | |
| | | required init(page:Int,listen1Model:Listen1Model){ |
| | | required init(page:Int,listenNewModel:ListenNewModel){ |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.page = page |
| | | self.listen1Model = listen1Model |
| | | self.listen1Model.subjectList.shuffle() |
| | | self.listenNewModel = listenNewModel |
| | | // self.listen1Model.subjectList.shuffle() |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | |
| | | } |
| | | |
| | | var tempArray = [VoiceHandleView]() |
| | | for (i,value) in listen1Model.subjectList.enumerated(){ |
| | | for (i,value) in listenNewModel.subjectList[page].enumerated(){ |
| | | let answerView = VoiceHandleView() |
| | | answerView.listenType = .lesson5 |
| | | answerView.tag = 1000+i |
| | |
| | | |
| | | private func showHintText(_ state:Bool){ |
| | | if let at = playVoiceAt{ |
| | | label_hint.text = listen1Model.subjectList[at].name |
| | | label_hint.text = listenNewModel.subjectList[page][at].name |
| | | UIView.animate(withDuration: 0.5) { |
| | | if state{ |
| | | self.label_hint.snp.remakeConstraints { make in |
| | |
| | | |
| | | viewModel.selectIndex.accept(indexPath) |
| | | |
| | | let answer = listen1Model.subjectList[playVoiceAt!] |
| | | let selectAnswer = listen1Model.subjectList[indexPath.row] |
| | | let answer = listenNewModel.subjectList[page][playVoiceAt!] |
| | | let selectAnswer = listenNewModel.subjectList[page][indexPath.row] |
| | | |
| | | var answerType:Fight_lessonType = .none |
| | | |
| | |
| | | |
| | | extension HomeListenFight_lesson_5_VC:UICollectionViewDataSource{ |
| | | func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { |
| | | let model = listen1Model.subjectList[indexPath.row] |
| | | let model = listenNewModel.subjectList[page][indexPath.row] |
| | | let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "_ListenFight_lesson_1_CCell", for: indexPath) as! ListenFight_lesson_1_CCell |
| | | cell.jq_addShadows(shadowColor: .black.withAlphaComponent(0.31), corner: 8, radius: 3, offset: CGSize(width: 0, height: 1), opacity: 1) |
| | | if viewModel.selectIndex.value == indexPath{ |
| | |
| | | } |
| | | |
| | | func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { |
| | | return listen1Model.subjectList.count |
| | | return listenNewModel.subjectList[page].count |
| | | } |
| | | |
| | | func numberOfSections(in collectionView: UICollectionView) -> Int { |
| | |
| | | subV.resetView() |
| | | } |
| | | |
| | | if viewModel.answerType.value == .success{ |
| | | let v = rootViewModel.answerCount.value + 1 |
| | | rootViewModel.answerCount.accept(v) |
| | | viewModel.answerType.accept(.none) |
| | | } |
| | | |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+0.4) { |
| | | if self.answterCount >= 4{ |
| | | self.rootViewModel.answerItems[self.page] = self.listen1Model |
| | | self.rootViewModel.answerItems[self.page] = self.listenNewModel.subjectList[self.page] |
| | | self.voicePlayer.playerEnd() |
| | | NotificationCenter.default.post(name: NextLession_Noti, object: nil) |
| | | } |