iOS7 glyphRangeForTextContainer-在UITextView中选择所有glyph/所有文本范围

iOS7 glyphRangeForTextContainer-在UITextView中选择所有glyph/所有文本范围,ios7,uitextview,textkit,nslayoutmanager,Ios7,Uitextview,Textkit,Nslayoutmanager,在UITextView中键入时,我尝试实现行距。我有一个函数,当你在UITextView中单击时,它似乎只为所有字符直到光标位置呈现行距 当您在UITextView中单击时,如何编写函数以确保格式应用于所有文本范围 glyphRangeForTextContainer是否有一个等效的方法来帮助我解决这个问题 - (void) formatText { __block CGFloat topOffset = 0; NSRange lineGlyphRange =

在UITextView中键入时,我尝试实现行距。我有一个函数,当你在UITextView中单击时,它似乎只为所有字符直到光标位置呈现行距

当您在UITextView中单击时,如何编写函数以确保格式应用于所有文本范围

glyphRangeForTextContainer是否有一个等效的方法来帮助我解决这个问题

- (void) formatText
{
        __block CGFloat topOffset = 0;

        NSRange lineGlyphRange = [self.layoutManager glyphRangeForTextContainer:self.textContainer];

        [self.layoutManager 
         enumerateLineFragmentsForGlyphRange:lineGlyphRange usingBlock:^(CGRect rect, CGRect usedRect, NSTextContainer *textContainer, NSRange glyphRange, BOOL *stop)
         {
             CGRect adjustedRect = rect;
             CGRect adjustedUsedRect = usedRect;
             adjustedRect.origin.y = topOffset;
             adjustedUsedRect.origin.y = topOffset;

             [self.layoutManager setLineFragmentRect:adjustedRect forGlyphRange:glyphRange usedRect:adjustedUsedRect];

             topOffset += 30; // 30 is the space between the lines you can adjust this as you like
         }];

        CGRect adjustedExtraLineFragmentRect = self.layoutManager.extraLineFragmentRect;
        CGRect adjustedExtraLineFragmentUsedRect = self.layoutManager.extraLineFragmentUsedRect;
        adjustedExtraLineFragmentRect.origin.y = topOffset;
        adjustedExtraLineFragmentUsedRect.origin.y = topOffset;

        [self.layoutManager setExtraLineFragmentRect:adjustedExtraLineFragmentRect usedRect:adjustedExtraLineFragmentUsedRect textContainer:self.textContainer];
}
问题与此线程有关

1-这是问题的视频:-

2-这是我正在测试的项目:

多谢各位