这里有两个元素:
iOS 7文本工具包中多列的良好解释/示例:
https://github.com/ShinobiControls/iOS7-day-by-day/blob/master/21-multi-column-textkit/21-multi-column-textkit.md
根据这个示例和以下问题:
如何在UILabel中定位文本子字符串的CGRect?
您可以尝试类似以下的操作:
- (void)layoutTextContainers
{
NSUInteger lastRenderedGlyph = 0;
CGFloat currentXOffset = 0;
while (lastRenderedGlyph < _layoutManager.numberOfGlyphs) {
CGRect textViewFrame = CGRectMake(currentXOffset, 10,
CGRectGetWidth(self.view.bounds) / 2,
CGRectGetHeight(self.view.bounds) - 20);
CGSize columnSize = CGSizeMake(CGRectGetWidth(textViewFrame) - 20,
CGRectGetHeight(textViewFrame) - 10);
NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:columnSize];
[_layoutManager addTextContainer:textContainer];
UITextView *textView = [[UITextView alloc] initWithFrame:textViewFrame
textContainer:textContainer];
textView.scrollEnabled = NO;
[self.scrollView addSubview:textView];
currentXOffset += CGRectGetWidth(textViewFrame);
lastRenderedGlyph = NSMaxRange([_layoutManager glyphRangeForTextContainer:textContainer]);
NSLog(@"Last rendered glyph %i",lastRenderedGlyph);
NSLog(@"Textview length %i",textView.text.length);
NSRange range = {lastRenderedGlyph-1, lastRenderedGlyph};
NSRange glyphRange;
[_layoutManager characterRangeForGlyphRange:range actualGlyphRange:&glyphRange];
NSLog(@"Glyph rect %@",NSStringFromCGRect([_layoutManager boundingRectForGlyphRange:glyphRange inTextContainer:textContainer]));
}
CGSize contentSize = CGSizeMake(currentXOffset, CGRectGetHeight(self.scrollView.bounds));
self.scrollView.contentSize = contentSize;
}
输出结果为:
Newspaper[89217:a0b] Last rendered glyph 711
Newspaper[89217:a0b] Textview length 2585
Newspaper[89217:a0b] Glyph rect {{121.556, 515.3761}, {13.444, 14.315979}}
Newspaper[89217:a0b] Last rendered glyph 1441
Newspaper[89217:a0b] Textview length 2585
Newspaper[89217:a0b] Glyph rect {{129.15199, 515.3761}, {5.8480072, 14.315979}}
Newspaper[89217:a0b] Last rendered glyph 2155
Newspaper[89217:a0b] Textview length 2585
Newspaper[89217:a0b] Glyph rect {{111.80001, 515.3761}, {23.199989, 14.315979}}
Newspaper[89217:a0b] Last rendered glyph 2585
Newspaper[89217:a0b] Textview length 2585
Newspaper[89217:a0b] Glyph rect {{92.720001, 329.26801}, {3.552002, 14.31601}}
Glyph Rect看起来不太好(我很想看它正常工作),但是你可以得到最新的字形显示。
希望能对你有所帮助!
[NSString sizeWithAttributes:(NSDictionary*)attributes]
获取此特性。 - Cameron Askewpaste
操作可能会对此造成问题。 - n00bProgrammer