Shark 向我展示了这种方法对性能造成的巨大影响。就像我的表格 View 中的 80% 一样。我所做的就是为每个单元格绘制两个标签(每页总共大约 8 个)。滚动期间。我用它绘制了矩形。
有没有更好的方法?喜欢直接绘制到某个图层吗?
最佳答案
您可以使用如下代码更快地进行绘图:
CGContextSetStrokeColorWithColor(context, strokeColor);
CGContextSetFillColorWithColor(context, strokeColor);
CGContextSelectFont(context, "Helvetica", fontSize, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetTextPosition(context, 0.0f, round(fontSize / 4.0f));
CGContextShowText(context, [text cStringUsingEncoding:NSMacOSRomanStringEncoding], strlen([text cStringUsingEncoding:NSMacOSRomanStringEncoding]));
但是,iPhone 上 Helvetica 字体的 Mac Roman 编码缺少许多非英语字符的符号,因此我认为除非您想升级到 iPhone OS 中的 Core Text,否则您将不得不使用 NSString 绘图方法3.2.
要检查您的字符串是否可以使用 Mac 罗马字符集表示,请使用如下内容:
if ([text canBeConvertedToEncoding:NSMacOSRomanStringEncoding])
关于iphone - 有没有比 -drawInRect :withFont:lineBreakMode:alignment:? 更快的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2700995/