我正在尝试通过UITextView
文本具有独特的背景颜色来实现视觉效果,例如:
我尝试构建的方法是基于 Apple 用于计算线条的代码片段,然后按照本示例所示构建来计算线条的帧,例如:
NSLayoutManager *layoutManager = [textView layoutManager];
NSString *string = textView.text;
NSInteger numberOfLines, index, stringLength = [string length];
NSMutableArray *ranges = [[NSMutableArray alloc] init];
NSMutableArray *frames = [[NSMutableArray alloc] init];
for (index = 0, numberOfLines = 0; index < stringLength; numberOfLines++)
{
NSRange tempRange;
NSRange range = [string lineRangeForRange:NSMakeRange(index, 0)];
CGRect rect = [layoutManager lineFragmentRectForGlyphAtIndex:index
effectiveRange:&tempRange];
[ranges addObject:[NSValue valueWithRange:range]];
[frames addObject:[NSValue valueWithCGRect:rect]];
NSMaxRange(tempRange);
}
然后我拿起框架并绘制矩形。我尝试过的这种方法和类似方法有一个共同的问题,即我计算的行的框架包含尾随空格,我不确定如何修剪它们(以及保持正确的文本流)。
我担心我可能想多了。有没有更简单的方法?