#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.