| | |
| | | private var randomElement:Listen1SubModel? |
| | | private var page:Int! |
| | | var rootViewModel:HomeListenFightViewModel! |
| | | private var isListen:Bool = false |
| | | private var isAnsterComplete:Bool = false //是否已经回答完成 |
| | | |
| | | private var menuView:StudyHandleView = StudyHandleView.jq_loadNibView() |
| | | private var menuView:VoiceHandleView! |
| | | |
| | | private lazy var collectionView:UICollectionView = { |
| | | let flowLayout = UICollectionViewFlowLayout() |
| | |
| | | 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 viewDidAppear(_ animated: Bool) { |
| | | super.viewDidAppear(animated) |
| | | VoicePlayer.share().delegate = self |
| | | } |
| | | |
| | | override func viewDidDisappear(_ animated: Bool) { |
| | | super.viewDidDisappear(animated) |
| | | VoicePlayer.share().delegate = nil |
| | | } |
| | | |
| | | override func setUI() { |
| | |
| | | make.bottom.equalToSuperview() |
| | | } |
| | | |
| | | menuView = VoiceHandleView() |
| | | //制造随机 |
| | | randomElement = listen1Model.subjectList.randomElement() |
| | | menuView.playUrl = randomElement?.correct |
| | | menuView.listenType = .lesson1 |
| | | view.addSubview(menuView) |
| | | menuView.snp.makeConstraints { make in |
| | | make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(24) |
| | | make.centerX.equalToSuperview() |
| | | make.height.equalTo(52) |
| | | make.width.equalTo(199) |
| | | make.width.equalTo(159) |
| | | } |
| | | } |
| | | |
| | |
| | | |
| | | if self?.randomElement?.id == self?.listen1Model.subjectList[index.row].id{ |
| | | answer = .success |
| | | self?.rootViewModel.correctNum += 1 |
| | | if self?.isAnsterComplete == false{ |
| | | self?.rootViewModel.correctNum += 1 |
| | | } |
| | | self?.isAnsterComplete = true |
| | | }else{ |
| | | answer = .fail |
| | | self?.rootViewModel.errorNum += 1 |
| | | if self?.isAnsterComplete == false{ |
| | | self?.rootViewModel.errorNum += 1 |
| | | } |
| | | } |
| | | |
| | | switch answer { |
| | |
| | | self.menuView.snp.updateConstraints { make in |
| | | make.top.equalTo(self.view).offset(v.origin.y + UIDevice.jq_safeEdges.top + 101 + 50) |
| | | make.left.equalToSuperview().offset(v.origin.x + 194) |
| | | make.width.equalTo(v.size.width + 50) |
| | | make.width.equalTo(v.size.width - 10) |
| | | make.height.equalTo(40) |
| | | } |
| | | self.view.layoutIfNeeded() |
| | | }completion: { _ in |
| | | self.collectionView.reloadData() |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+2){ |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+1.2){ |
| | | NotificationCenter.default.post(name: NextLession_Noti, object: nil) |
| | | // self.collectionView.isUserInteractionEnabled = true |
| | | self.viewModel.answerType.accept(.none) |
| | |
| | | |
| | | extension HomeListenFight_lesson_1_VC:UICollectionViewDelegate{ |
| | | func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { |
| | | if !isListen{ |
| | | alertError(msg: "请先听题");return |
| | | } |
| | | viewModel.selectIndex.accept(indexPath) |
| | | } |
| | | } |
| | |
| | | return min(4,listen1Model.subjectList.count) |
| | | } |
| | | } |
| | | |
| | | extension HomeListenFight_lesson_1_VC:VoicePlayerDelegate{ |
| | | func playComplete() { |
| | | isListen = true |
| | | menuView.resetView() |
| | | } |
| | | } |