From bae0af27efcb81ed77549b780c05a6ffcaf07d58 Mon Sep 17 00:00:00 2001 From: fish Date: Mon, 20 Jul 2026 21:37:18 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8B=BC=E5=86=99=E8=BE=93=E5=85=A5=E7=9F=AD?= =?UTF-8?q?=E8=AF=8D=E5=B1=85=E4=B8=AD=E9=95=BF=E8=AF=8D=E5=8F=AF=E6=BB=9A?= =?UTF-8?q?=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 --- .../LearnEnglish/Views/SpellingInputView.swift | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/LearnEnglish/LearnEnglish/Views/SpellingInputView.swift b/LearnEnglish/LearnEnglish/Views/SpellingInputView.swift index 96b1ae3..32a18f0 100644 --- a/LearnEnglish/LearnEnglish/Views/SpellingInputView.swift +++ b/LearnEnglish/LearnEnglish/Views/SpellingInputView.swift @@ -5,6 +5,7 @@ final class SpellingInputView: UIView, UITextFieldDelegate { private let hiddenField = UITextField() private let stack = UIStackView() + private let scrollView = UIScrollView() private var chars: [String] = [] private var blankPositions: [Int] = [] @@ -21,7 +22,6 @@ final class SpellingInputView: UIView, UITextFieldDelegate { override init(frame: CGRect) { super.init(frame: frame) - let scrollView = UIScrollView() scrollView.showsHorizontalScrollIndicator = false scrollView.showsVerticalScrollIndicator = false addSubview(scrollView) @@ -158,6 +158,22 @@ final class SpellingInputView: UIView, UITextFieldDelegate { return box } refreshBoxes() + DispatchQueue.main.async { [weak self] in + self?.updateAlignment() + } + } + + private func updateAlignment() { + let totalWidth = CGFloat(chars.count) * 32 + CGFloat(max(chars.count - 1, 0)) * 6 + let available = scrollView.bounds.width + if totalWidth <= available { + let inset = max(0, (available - totalWidth) / 2) + scrollView.contentInset = UIEdgeInsets(top: 0, left: inset, bottom: 0, right: inset) + scrollView.isScrollEnabled = false + } else { + scrollView.contentInset = .zero + scrollView.isScrollEnabled = true + } } @objc private func boxTapped(_ gesture: UITapGestureRecognizer) {