Я хочу, чтобы мой UITextView прокручивал до определенной точки (слово или, лучше, точка останова: ">>>"), когда пользователь нажимает кнопку вне самого текстового представления (на iOS). Размер шрифта может варьироваться в зависимости от взаимодействия с пользователем (то есть пользователь может увеличивать или уменьшать размер шрифта). Сам текст вставляется пользователем (который интерактивно добавляет точки останова).
Я пытаюсь добиться этого, получая y-позиции (в пикселях) точек останова (">>>"), а затем устанавливаю смещение textView в соответствии (с setContentOffset).
Проблема в том, что у меня неправильные очки!
Вот фрагмент моего кода (только для одного повторения ">>>"):
NSRange range = [self.textview.text rangeOfString:@">>>"];
UITextPosition *beginning = self.textview.beginningOfDocument;
UITextPosition *start = [self.textview positionFromPosition:beginning offset:range.location];
UITextPosition *end = [self.textview positionFromPosition:start offset:range.length];
UITextRange *textRange = [self.textview textRangeFromPosition:start toPosition:end];
CGRect rect = [self.textview firstRectForRange:textRange];
[self.textview setContentOffset:CGPointMake(0, rect.origin.y)];
Что не так с моим подходом? Я чувствую, что есть лучший (и более простой) способ сделать то же самое ...
PS: я нашел другую тему, связанную с той же проблемой, но она быстро, и я не могу перевести ее: Прокрутите UITextView к определенному тексту