我正在开发一款新应用。我使用Core Text从NSAttributedString渲染不同的文档。我在渲染文本时遇到了奇怪的故障。每个文档都不会发生这种情况。当它出现与否时似乎没有押韵或理由。
这是一个裁剪的屏幕截图,用于演示此问题。
以下是正确渲染的相同屏幕截图中的一行。
屏幕截图来自相同的屏幕截图和相同的文档。
出现问题时,通常只有2-3行连续不正确的文本。文件的其余部分没问题。
以下是我用于在drawRect中呈现文本的代码:
CGContextRef context = UIGraphicsGetCurrentContext();
float viewHeight = self.bounds.size.height;
CGContextTranslateCTM(context, 0, viewHeight);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetTextMatrix(context, CGAffineTransformMakeScale(1.0, 1.0));
CGMutablePathRef path = CGPathCreateMutable();
CGRect bounds = CGRectMake(PADDING_LEFT, -PADDING_TOP, self.bounds.size.width-20.0, self.bounds.size.height);
CGPathAddRect(path, NULL, bounds);
CTFramesetterRef framesetter = CTFramesetterCreateWithAttributedString((CFMutableAttributedStringRef)attrString);
CTFrameRef frame = CTFramesetterCreateFrame(framesetter, CFRangeMake(0, 0), path, NULL);
CFRelease(framesetter);
CFRelease(path);
CTFrameDraw(frame, context);
感谢任何帮助!
编辑:此问题在iPhone 4上似乎不存在,仅在我测试的3GS上存在。
故障始终位于文档的中间。
答案 0 :(得分:0)
请尝试各种设置以影响文本的子像素渲染。您可以在https://github.com/Cocoanetics/NSAttributedString-Additions-for-HTML/blob/master/Classes/DTCoreTextLayoutFrame.m
的第259行查看各种选项