Problemdetails:
- Beim Eingeben von Zahlen wird das Textfeld über den vorgesehenen Rahmen hinaus erweitert
- Das Textfeld sollte seine Größe beibehalten und die Schriftart verkleinern für längere Nummern
- Wird derzeit verwendet adjustsFontSizeToFitWidth = true, aber es funktioniert nicht wie erwartet
Das Problem liegt vor DegenTrader/Views/Swap/SwapView.swift, insbesondere in der CustomTextField-Implementierung:
Code: Select all
struct CustomTextField: UIViewRepresentable {
// ... other properties
func makeUIView(context: Context) -> UITextField {
let textField = UITextField()
textField.adjustsFontSizeToFitWidth = true
textField.minimumFontSize = 16
// ... other configurations
}
}
Code: Select all
HStack(spacing: 12) {
CustomTextField(text: $fromAmount, field: .from, focusedField: $focusedField)
.frame(maxWidth: .infinity, maxHeight: 40)
Button(action: { showFromTokenSelect = true }) {
TokenButton(token: selectedFromToken, action: { showFromTokenSelect = true })
}
.frame(width: 140)
}
.frame(height: 40)
- Das Textfeld sollte seine Rahmengröße beibehalten
- Die Schriftart sollte bei längeren Zahlen automatisch verkleinert werden
- Das Layout sollte unabhängig von der Eingabelänge stabil bleiben
- Textfeld wird über seinen Rahmen hinaus erweitert
- Layout bricht bei der Eingabe langer Zahlen
- Cursorposition wird inkonsistent
- iOS 15.0+
- SwiftUI
- Xcode 14+
Jede Hilfe bei der Behebung dieses Layoutproblems bei gleichzeitiger Beibehaltung der Schriftartskalierungsfunktion wäre sehr dankbar.