Intereting Posts
Как подключить PlaceID для совместного использования видео на Facebook в Swift? Передача объекта между контроллером Swift Прокрутка за верх (и снизу) UITableView – так, что tableview может действовать как Picker Проблемы с производительностью при поиске минимума и максимума с функциональным подходом Как обновить модель и данные базовой модели iOS может работать NSURLProtocol с NSURLSession {upload, download} dataTask Использование одновременной камеры iOS Могу ли я запустить XCode для разработки iOS в простом леопарде? Прямая запись в уже подключенный CBPeripheral без повторного открытия Как сохранить собственный пользовательский интерфейс после приема вызова с помощью Callkit Как создать приложение iOS с несколькими версиями sdk? выполнять метод каждый раз, когда выбирается вкладка Есть ли способ сделать iPad сон / бодрствование через определенные промежутки времени с помощью Apple configurator? Невозможно использовать pop в Xcode 8 Как перейти на конкретную страницу с помощью UIPageViewController?

Выделите определенную часть UITextView в Swift

В приложении Swift, которое я создаю, пользователь может ввести текст в текстовое представление, а затем выполнить поиск определенной строки внутри него, как в Pages (и многих других).

У меня есть index символа, который они ищут как Integer (т. Е. Они находятся на третьем экземпляре «привет» в массивном текстовом блоке, который они набрали, и я знаю, что это 779-я буква текстового представления), и я я пытаюсь автоматически прокручивать текстовое представление до строки, в которой они находятся, так что он выскакивает (как в Pages).

Я пытаюсь перейти к применимой строке с помощью этой команды:

 self.textview.scrollRangeToVisible(NSMakeRange(index, 0)) 

но он никогда не прыгает в нужное место (иногда слишком далеко вниз, иногда слишком далеко вверх), часто в зависимости от размера экрана, поэтому я знаю, что index не принадлежит прямо там.

Как я могу правильно разрешить пользователю перейти к определенной строке в текстовом представлении, сделав просмотр текста прокруткой до определенного символа?

Вы можете получить строку, которая находится перед индексом 779, а затем вычислить высоту этой строки и затем прокрутить ее до этой точки.

 let string = textView.text.substringWithRange(Range<String.Index>(start: textView.text.startIndex, end: textView.text.startIndex.advancedBy(779)))// your <779 string let size = string.sizeWithAttributes([NSFontAttributeName:yourFont]) let point = CGPointMake(0, size.height) scrollView.setContentOffset(point, animated:true)