UITextView.highlight автоматически прокручивается до конца документа

#swift #uiscrollview #uitextview

#swift #uiscrollview #uitextview

Вопрос:

Я использую UITextView для отображения документов. В документе пользователь может нажать на слово, и оно будет выделено красным.

Это работает нормально, за исключением случаев, когда размер документа превышает размер UITextView. Когда я вызываю этот код:

 myTextView.highlight(charPos: wordIndexInDocument, length: wordLength)
 

слово правильно выделено, но документ прокручивается до конца.

Я пробовал следующее, которое было рекомендовано в другом месте, но оно не работает.

  myTextView.isScrollEnabled = false
 myTextView.highlight(charPos: wordIndexInDocument, length: wordLength)
 myTextView.isScrollEnabled = true
 

Если я закомментирую оператор с помощью функции выделения, выделенное слово не будет выделено, но прокрутки не будет. Так что эта строка определенно вызывает прокрутку.

Этот код находится в подклассе UIView, а не UIViewController.

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

Ответ №1:

попробуйте использовать scrollRangeToVisible и укажите диапазон выделенного текста

 textView.scrollRangeToVisible(NSRange(location: 0, length: 0))
 

Комментарии:

1. Я попробовал это, и это не позволило документу прокручиваться до самого низа. К сожалению, это заставляет экран мигать, что было бы очень раздражающим для конечного пользователя. Я думаю, мне нужен способ фактически отключить прокрутку при использовании UITextView.highlight.