IQKeyboardManager не увеличивает UITextView с каждой новой строкой текста - PullRequest
0 голосов
/ 23 мая 2019

Я использую IQKeyboardManager в своем проекте, и он отлично работает, кроме одной проблемы. У меня есть UITextView, где мои пользователи вводят комментарии, когда на клавиатуре отображается текстовое представление движется вверх, как и должно быть, проблема в том, что если пользователь вводит несколько строк текста, текстовое представление расширяется вниз с каждой новой строкой кода, которая затем идет ниже клавиатуры после 2 строк. Если я отклоняю клавиатуру, затем вызываю ее снова, она перемещает текстовое представление вверх, как и должно показывать весь (расширенный вид), но если я продолжаю печатать, снова новые строки падают за клавиатурой.

Я пытался использовать прокрутку, которая может работать, но не тот пользовательский интерфейс, который мне нужен, и я просмотрел множество ответов, касающихся управления клавиатурой, но ни одного, которые касались этой проблемы с IQKeyboardManager.

У меня нет никакого кода, кроме реализации IQKeyboardManager, но он работает нормально.

Есть какие-нибудь идеи о том, как я могу перемещать представление вверх с каждой новой строкой в ​​текстовом представлении при использовании IQKeyboardManager?

1 Ответ

0 голосов
/ 24 мая 2019

Я покопался в github и обнаружил, что это на самом деле не проблема, но они ожидают, что разработчики узнают, когда будет расти uitextview. Таким образом, они разработали вызов для использования, когда это уместно. IQKeyboardManager.shared.reloadLayoutIfNeeded ()

Мое решение зависит от ширины моего текстового поля и количества символов, которое требуется до создания новой строки. Не идеально, но это работает без проблем в моем приложении, так что, надеюсь, кто-то другой может использовать его.

func textViewDidChange(_ textView: UITextView) {

    let count = textView.text.count

    if count >= 15 || count >= 30 || count >= 45 || count >= 60 || count >= 75 {
        IQKeyboardManager.shared.reloadLayoutIfNeeded()
    }
}
...