diff --git a/LearnEnglish/LearnEnglish/Views/QuizViewController.swift b/LearnEnglish/LearnEnglish/Views/QuizViewController.swift index c21ac4b..ff4297a 100644 --- a/LearnEnglish/LearnEnglish/Views/QuizViewController.swift +++ b/LearnEnglish/LearnEnglish/Views/QuizViewController.swift @@ -190,13 +190,21 @@ final class QuizViewController: UIViewController { if isSpelling { spellingHintLabel.text = "\(question.word.word.count) 个字母,补全空缺部分" spellingView.configure(blankedWord: question.blankedWord, blankPositions: question.blankPositions) - spellingView.onChange = { [weak self] in - guard let self else { return } - nextButton.isEnabled = spellingView.isComplete + if config.isStudyMode { + nextButton.isHidden = true + spellingView.onChange = { [weak self] in + guard let self, spellingView.isComplete else { return } + submitSpelling(spellingView.typedWord(), for: question) + } + } else { + spellingView.onChange = { [weak self] in + guard let self else { return } + nextButton.isEnabled = spellingView.isComplete + } + nextButton.configuration?.title = "确认" + nextButton.isEnabled = false + nextButton.isHidden = false } - nextButton.configuration?.title = "确认" - nextButton.isEnabled = false - nextButton.isHidden = false spellingView.activate() } else if isDictation { dictationView.reset() @@ -348,15 +356,10 @@ final class QuizViewController: UIViewController { resultLabel.isHidden = false if config.isStudyMode { - if correct { - nextButton.isHidden = true - DispatchQueue.main.asyncAfter(deadline: .now() + 0.8) { [weak self] in - self?.restart() - } - } else { - nextButton.configuration?.title = "继续学习" - nextButton.isEnabled = true - nextButton.isHidden = false + nextButton.isHidden = true + let delay: TimeInterval = correct ? 1.0 : 3.0 + DispatchQueue.main.asyncAfter(deadline: .now() + delay) { [weak self] in + self?.restart() } } else { nextButton.configuration?.title = currentIndex + 1 < questions.count ? "下一题" : "查看成绩" diff --git a/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift b/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift index ce7343a..ce74fcc 100644 --- a/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift +++ b/LearnEnglish/LearnEnglish/Views/WordDetailViewController.swift @@ -189,7 +189,7 @@ final class WordDetailViewController: UIViewController { @objc private func startSpelling() { Haptics.selection() - let config = QuizConfig(mode: .spelling, words: [word]) + let config = QuizConfig(mode: .spelling, words: [word], isStudyMode: true) navigationController?.pushViewController(QuizViewController(config: config), animated: true) }