2015-06-03 7 views
0

У меня есть UIScrollView с UILabel внутри него, заполненным неанглийским текстом.Поиск и автопрокрутка UIScrollview с UILabel внутри

Я хотел бы найти scrollview/UILabel для слова/фразы и автоматического прокрутки до этой точки.

Я знаю, что нет простого способа сделать это, потому что для UILabel нет функции. Я не могу использовать UITextView, потому что по какой-то причине обычная прокрутка в UITextView очень изменчивая, что создает плохую работу пользователя (отзывы от пользователей). UILabel на UIScrollView прокручивает чрезвычайно плавно, но явно не обладает способностью UITextView. Есть идеи?

ответ

1

Я получил ответ от Luke Rogers, которые ответили на этот SO question

- (CGRect)boundingRectForCharacterRange:(NSRange)range 
{ 
    NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:[self attributedText]]; 
    NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init]; 
    [textStorage addLayoutManager:layoutManager]; 
    NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:[self bounds].size]; 
    textContainer.lineFragmentPadding = 0; 
    [layoutManager addTextContainer:textContainer]; 

    NSRange glyphRange; 

    // Convert the range for glyphs. 
    [layoutManager characterRangeForGlyphRange:range actualGlyphRange:&glyphRange]; 

    return [layoutManager boundingRectForGlyphRange:glyphRange inTextContainer:textContainer]; 
} 
Смежные вопросы