SwiftUI TextField с оболочкой UIKit, раскрывающейся в полноэкранном режиме при вводе чисел в пользовательском интерфейсеIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 SwiftUI TextField с оболочкой UIKit, раскрывающейся в полноэкранном режиме при вводе чисел в пользовательском интерфейсе

Сообщение Anonymous »

У меня возникла проблема с пользовательской оболочкой UITextField в SwiftUI, которая расширяется и заполняет весь экран при вводе чисел. Текстовое поле должно сохранять размер рамки при уменьшении размера шрифта для более длинных чисел, но вместо этого оно нарушает ограничения.
Подробности проблемы:
  • При вводе чисел текстовое поле расширяется за пределы предполагаемой рамки.
  • Текстовое поле должно сохранять свой размер и уменьшать шрифт. для более длинных номеров
  • В настоящее время используется AdjustsFontSizeToFitWidth = true, но он не работает должным образом
Структура проекта:
Проблема заключается в DegenTrader/Views/Swap/SwapView.swift, особенно в реализации CustomTextField:

Код: Выделить всё

struct CustomTextField: UIViewRepresentable {
// ... other properties

func makeUIView(context: Context) -> UITextField {
let textField = UITextField()
textField.adjustsFontSizeToFitWidth = true
textField.minimumFontSize = 16
// ... other configurations
}
}
Текстовое поле используется в макете SwapView:

Код: Выделить всё

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)
Ожидаемое поведение:
  • Текстовое поле должно сохранять размер кадра.
  • Шрифт должен автоматически уменьшаться для более длинных чисел.
  • Макет должен оставаться стабильным независимо от длины ввода.
Текущее поведение:
  • Текстовое поле выходит за пределы рамки.
  • Макет ломается при вводе длинных чисел.
  • Положение курсора становится непоследовательным.
Среда:
  • iOS 15.0+
  • SwiftUI
  • Xcode 14+
Полную версию проекта можно найти по адресу: https://github.com/lexypaul13/DegenTrader
Будем очень признательны за любую помощь в устранении этой проблемы с макетом при сохранении функции масштабирования шрифта.


Подробнее здесь: https://stackoverflow.com/questions/793 ... ng-numbers
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»