UITextField: AdjustmentsFontSizeToFitWidth поведение / проблема - PullRequest
0 голосов
/ 26 марта 2020

У меня проблема с использованием textField's adjustsFontSizeToFitWidth. У меня есть textField с размером шрифта 50 и максимальной шириной 300 (это ограничение меньше или равно). TextField размещается по центру по вертикали и горизонтали с помощью автоматического макета. Теперь, когда я запускаю приложение, текст сокращается с самого начала. Я знаю, что это может быть из-за того, что система считает, что границ Texfield недостаточно, но я предоставил элемент управления автоматической компоновке, чтобы понять это, и я предполагаю, что он должен работать. Ниже приведен снимок ... Вы можете увидеть большой placeholder, а затем внезапно текст сокращается ... Есть мысли? Я делаю что-то не так, я пытался избежать ручного расчета ширины ..

SourceCode Sample

enter image description here

Ответы [ 2 ]

0 голосов
/ 26 марта 2020

Хорошо !! Наконец, я нашел способ, идея состояла в том, чтобы проверить, больше ли ширина, чем определенный предел ширины ... когда ширина больше, я установил adjustsFontSizeToFitWidth = true, иначе установил false ... по какой-то причине решение не сработало когда я очищаю текст ... тогда я попробовал программный подход, и он начал работать .... не знаю, в чем разница ... в любом случае я обновил источник ..... если есть лучшее решение, дайте мне знать.

    @IBAction func textChanged(_ txtField: UITextField) {
    if txtField.frame.width >= (view.frame.width * widthMultiplier).rounded() {
        txtField.adjustsFontSizeToFitWidth = true
    } else {
        txtField.adjustsFontSizeToFitWidth = false
    }
}
0 голосов
/ 26 марта 2020

Установите начальное / конечное пространство для текстового поля, например, 15 пунктов от левой безопасной области и 15 от кнопки, чтобы он мог автоматически увеличить размер шрифта. Так как теперь он сжимает шрифт до минимального 17 (который установлен в раскадровке), так как ширина недостаточна.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...