| | |
| | | private var randomElement:Listen1SubModel? |
| | | private var page:Int! |
| | | var rootViewModel:HomeListenFightViewModel! |
| | | private var tempViews = [StudyHandleView]() |
| | | |
| | | private var playedIndex = Set<Int>() //已经播放过的view |
| | | |
| | | private lazy var stackView:UIStackView = { |
| | | let stackView = UIStackView() |
| | |
| | | |
| | | addStackView() |
| | | VoicePlayer.share().playEnd {[weak self] in |
| | | |
| | | //对已经播放过的View,进行刷新 |
| | | for sub in self!.stackView.arrangedSubviews as! [StudyHandleView]{ |
| | | if self!.playedIndex.contains(sub.tag){ |
| | | sub.resetView() |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | private func addStackView(){ |
| | | stackView.removeArrangedSubviews() |
| | | |
| | | var tempViews = [StudyHandleView]() |
| | | for subV in stackView.arrangedSubviews{ |
| | | subV.removeFromSuperview() |
| | | } |
| | | tempViews.removeAll() |
| | | |
| | | for index in 0...2{ |
| | | let handleView = StudyHandleView.jq_loadNibView() |
| | | handleView.listenType = .lesson2 |
| | | handleView.view_choose.alpha = 0 |
| | | handleView.btn_choose.tag = 10 + index |
| | | handleView.tag = 20 + index |
| | | |
| | | let row = viewModel.selectIndex.value!.row |
| | | let model = listen1Model.subjectList[row] |
| | |
| | | handleView.vioceSoundUrl = model.error.components(separatedBy: ",").last |
| | | } |
| | | |
| | | handleView.playAt {[weak self] index in |
| | | self?.playedIndex.insert(index) |
| | | } |
| | | |
| | | handleView.chooseClouse {[weak self] btn in |
| | | guard let weakSelf = self else { return } |
| | | let row = weakSelf.viewModel.selectIndex.value!.row |
| | | |
| | | handleView.view_choose.alpha = 1 |
| | | var lessionType:Fight_lessonType = .none |
| | | |
| | | if handleView.vioceSoundUrl == weakSelf.listen1Model.subjectList[row].correct{ |
| | | lessionType = .success |
| | | VoicePlayer.share().playerEnd() |
| | | }else{ |
| | | lessionType = .fail |
| | | } |
| | |
| | | handleView.btn_state.alpha = 1 |
| | | } |
| | | |
| | | let i = ceil(handleView.x / 300).int |
| | | if let cell = self?.collectionView.dequeueReusableCell(withReuseIdentifier: "_ListenFight_lesson_1_CCell", for: self!.viewModel.selectIndex.value!) as? ListenFight_lesson_1_CCell{ |
| | | self?.viewModel.answerType.accept(.success) |
| | | self?.answerSuccess(cell,index: index) |
| | | self?.answerSuccess(cell,index: i) |
| | | } |
| | | case .fail: |
| | | weakSelf.rootViewModel.errorNum += 1 |
| | |
| | | UIView.animate(withDuration: 0.5) { |
| | | handleView.btn_state.alpha = 1 |
| | | } |
| | | UIView.animate(withDuration: 0.5, delay: 1.2, options: .layoutSubviews) { |
| | | handleView.btn_pay.alpha = 1 |
| | | handleView.btn_voice.alpha = 1 |
| | | handleView.btn_state.alpha = 0 |
| | | } completion: { _ in |
| | | handleView.btn_choose.isSelected = false |
| | | } |
| | | default: |
| | | handleView.btn_state.setImage(nil, for: .normal) |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | handleView.snp.makeConstraints { make in |
| | | make.height.equalTo(52) |
| | | make.width.greaterThanOrEqualTo(159) |
| | | make.width.greaterThanOrEqualTo(221) |
| | | } |
| | | tempViews.append(handleView) |
| | | } |
| | |
| | | //copy试图放在上面进行覆盖 |
| | | let copyHandleView = studyHandleView.copyView() |
| | | copyHandleView.view_choose.isHidden = true |
| | | copyHandleView.vioceSoundUrl = listen1Model.subjectList[self.viewModel.selectIndex.value!.row].correct |
| | | copyHandleView.btn_state.setImage(nil, for: .normal) |
| | | view.addSubview(copyHandleView) |
| | | view.layoutIfNeeded() |
| | |
| | | make.height.equalTo(40) |
| | | } |
| | | self.view.layoutIfNeeded() |
| | | }completion: { _ in |
| | | self.resetStackView() |
| | | |
| | | }completion: { complete in |
| | | if complete{ |
| | | self.resetStackView() |
| | | } |
| | | } |
| | | } |
| | | |