Swift: метод textView "scrollRangeToVisible" не работает после изменения размера текстового интерфейса пользовательского интерфейса в раскадровке? - PullRequest
0 голосов
/ 20 июня 2019

Я новичок в Свифте. Когда мой UItextView заполнен, я хотел бы, чтобы мой UItextView автоматически прокручивал до того, что я набрал (внизу UItextView).

Я использовал scrollRangeToVisible, и он работал впервые. Однако после того, как я изменил размер пользовательского интерфейса UItextView на меньший, с тех пор он не работал.

Это код, который у меня сейчас есть.

    let range = NSMakeRange(textView.text.count - 1, 0)
    textView.scrollRangeToVisible(range)

Поведение кажется мне странным. Во-первых, он не будет автоматически прокручиваться вниз, а затем, после того, как я вручную прокручиву его вниз и наберу буквы в UItextView, появится пустая страница, например: Случайное пустое всплывающее окно . После ввода букв снова прокрутите вниз: Прокрутка вниз .После того, как он снова будет напечатан, появится всплывающее окно большего банка: Большой случайный пустой всплывающее окно . Введите снова бланк становится еще больше: Пустое всплывающее окно заполнено Затем снова введите прокрутку вниз до конца: Снова прокрутите вниз до работы , После того, как вы продолжите печатать, это, наконец, сработает, при вводе новой строки UItextView будет прокручиваться до самого дна. Это была очень странная проблема, и я видел, что некоторые источники говорят, что эмодзи вызовет проблему для "scrollRangeToVisible". Спасибо за помощь!

1 Ответ

0 голосов
/ 20 июня 2019

Вы можете попробовать прокрутить туда, где находится ваша каретка:

textView.scrollRangeToVisible(textView.selectedRange)
...