| | |
| | | private var page:Int! |
| | | private var answterCount:Int = 0 //回答计数,用于确定角标 |
| | | var rootViewModel:HomeListenFightViewModel! |
| | | private var voicePlayer = VoicePlayer.share() |
| | | |
| | | required init(page:Int,listen1Model:Listen1Model){ |
| | | super.init(nibName: nil, bundle: nil) |
| | | self.page = page |
| | | self.listen1Model = listen1Model |
| | | self.listen1Model.subjectList.shuffle() |
| | | } |
| | | |
| | | required init?(coder: NSCoder) { |
| | | fatalError("init(coder:) has not been implemented") |
| | | } |
| | | |
| | | |
| | | override func viewDidAppear(_ animated: Bool) { |
| | | super.viewDidAppear(animated) |
| | | voicePlayer.delegate = self |
| | | } |
| | | |
| | | override func viewDidDisappear(_ animated: Bool) { |
| | | super.viewDidDisappear(animated) |
| | | voicePlayer.delegate = nil |
| | | } |
| | | |
| | | |
| | | |
| | | override func viewDidLoad() { |
| | | super.viewDidLoad() |
| | |
| | | // viewModel.selectIndex.accept(IndexPath(row: 0, section: 0)) |
| | | |
| | | setAnswerStackView() |
| | | } |
| | | |
| | | VoicePlayer.share().playEnd { [weak self] in |
| | | guard let weakSelf = self else { return } |
| | | // if weakSelf.viewModel.selectIndex.value != nil{ |
| | | // weakSelf.collectionView.reloadItems(at: [weakSelf.viewModel.selectIndex.value!]) |
| | | // weakSelf.viewModel.selectIndex.accept(nil) |
| | | // } |
| | | weakSelf.collectionView.reloadData() |
| | | func restore(){ |
| | | answterCount = 0 |
| | | for subView in view.subviews{ |
| | | if subView is Lesson_3_AnswerView{ |
| | | subView.removeFromSuperview() |
| | | } |
| | | } |
| | | setUI() |
| | | collectionView.reloadData() |
| | | |
| | | } |
| | | |
| | | override func setUI() { |
| | | super.setUI() |
| | | if !view.subviews.contains(collectionView){ |
| | | collectionView.delegate = self |
| | | collectionView.dataSource = self |
| | | collectionView.showsVerticalScrollIndicator = false |
| | | collectionView.backgroundColor = .clear |
| | | view.addSubview(collectionView) |
| | | } |
| | | |
| | | collectionView.delegate = self |
| | | collectionView.dataSource = self |
| | | collectionView.showsVerticalScrollIndicator = false |
| | | collectionView.backgroundColor = .clear |
| | | view.addSubview(collectionView) |
| | | collectionView.snp.makeConstraints { make in |
| | | make.top.equalTo(self.view.safeAreaLayoutGuide.snp.top).offset(0) |
| | | make.left.equalTo(97) |
| | | make.right.equalTo(-54) |
| | | make.bottom.equalToSuperview() |
| | | } |
| | | } |
| | | |
| | | private func answerSuccess(_ cell:ListenFight_lesson_1_CCell,index:Int){ |
| | | |
| | | } |
| | | |
| | | private func resetStackView(){ |
| | | |
| | | } |
| | | |
| | | override func setRx() { |
| | |
| | | } |
| | | |
| | | @objc private func chooseAnswerAction(btn:UIButton){ |
| | | |
| | | if viewModel.selectIndex.value == nil{alertError(msg: "请先听题");return} |
| | | |
| | | let index = btn.tag - 10 |
| | |
| | | let copyViewFrame = subV?.convert(subV!.bounds, to: self.view) |
| | | let copyView = subV?.copyView() |
| | | copyView?.frame = copyViewFrame! |
| | | copyView?.img_cover.image = subV?.img_cover.image |
| | | copyView?.img_cover.contentMode = .scaleToFill |
| | | copyView?.img_cover.image = subV?.img_cover.image |
| | | self.view.addSubview(copyView!) |
| | | copyView?.layoutIfNeeded() |
| | | |
| | |
| | | copyView?.frame = newFrame |
| | | } completion: { _ in |
| | | self.answterCount += 1 |
| | | if self.answterCount == 3{ |
| | | self.rootViewModel.answerItems[self.page] = self.listen1Model |
| | | NotificationCenter.default.post(name: NextLession_Noti, object: nil);return |
| | | } |
| | | self.voicePlayer.playerAt(url: self.listen1Model.subjectList[valueIndex].correct) |
| | | |
| | | DispatchQueue.main.asyncAfter(deadline: .now()+1.0) { |
| | | self.setAnswerStackView() |
| | |
| | | func numberOfSections(in collectionView: UICollectionView) -> Int { |
| | | return 2 |
| | | } |
| | | } |
| | | |
| | | extension HomeListenFight_lesson_3_VC:VoicePlayerDelegate{ |
| | | func playComplete() { |
| | | collectionView.reloadData() |
| | | |
| | | if self.answterCount == 3{ |
| | | self.rootViewModel.answerItems[self.page] = self.listen1Model |
| | | NotificationCenter.default.post(name: NextLession_Noti, object: nil) |
| | | VoicePlayer.share().playerEnd() |
| | | return |
| | | } |
| | | } |
| | | |
| | | func playing() { |
| | | |
| | | } |
| | | } |