SwiftUI TextField mit UIKit-Wrapper erweitert den Vollbildmodus bei der Eingabe von Zahlen in der benutzerdefinierten KrIOS

Programmierung für iOS
Guest
 SwiftUI TextField mit UIKit-Wrapper erweitert den Vollbildmodus bei der Eingabe von Zahlen in der benutzerdefinierten Kr

Post by Guest »

Ich habe ein Problem mit einem benutzerdefinierten UITextField-Wrapper in SwiftUI, der sich bei der Eingabe von Zahlen so weit ausdehnt, dass er den gesamten Bildschirm ausfüllt. Das Textfeld sollte seine Rahmengröße beibehalten, während die Schriftgröße für längere Zahlen verkleinert wird, aber stattdessen werden seine Einschränkungen durchbrochen.
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
Projektstruktur:
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
}
}
Das Textfeld wird im SwapView-Layout verwendet:

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)
Erwartetes Verhalten:
  • 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
Aktuelles Verhalten:
  • Textfeld wird über seinen Rahmen hinaus erweitert
  • Layout bricht bei der Eingabe langer Zahlen
  • Cursorposition wird inkonsistent
Umgebung:
  • iOS 15.0+
  • SwiftUI
  • Xcode 14+
Das komplette Projekt finden Sie unter: https://github.com/lexypaul13/DegenTrader
Jede Hilfe bei der Behebung dieses Layoutproblems bei gleichzeitiger Beibehaltung der Schriftartskalierungsfunktion wäre sehr dankbar.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post