无故事王国
2024-06-12 21656936d06a8ea01d8d9ce4fdb1dbe0bb2e8419
DolphinEnglishLearnStudent/Moudle/Home/Listen/VC/HomeListenFight_lesson_3_VC.swift
@@ -35,17 +35,30 @@
            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()
@@ -53,39 +66,36 @@
//                        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() {
@@ -149,7 +159,6 @@
            }
            @objc private func chooseAnswerAction(btn:UIButton){
                        if viewModel.selectIndex.value == nil{alertError(msg: "请先听题");return}
                        let index = btn.tag - 10
@@ -183,8 +192,8 @@
                                                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()
@@ -211,10 +220,7 @@
                                                                        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()
@@ -309,5 +315,21 @@
            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() {
            }
}