Shark告诉我这种方法会受到巨大的性能影响。就像我表格中的80%一样。我所做的只是每个单元格绘制两个标签(每页约8个)。滚动期间。我drawInRect:用那个。
有更好的方法吗?喜欢直接画到某层?
答案 0 :(得分:5)
您可以使用以下代码快速绘图:
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编码缺少许多非英文字符的符号,所以我认为你坚持使用NSString绘图方法,除非你想在iPhone OS中升级到Core Text 3.2。
要检查并查看您的字符串是否可以使用Mac罗马字符集表示,请使用以下内容:
if ([text canBeConvertedToEncoding:NSMacOSRomanStringEncoding])