iphone - 有没有比 -drawInRect :withFont:lineBreakMode:alignment:? 更快的东西

标签 iphone

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/

相关文章:

javascript - 尝试在 Mobile Safari 上调试 Javascript 但当 iPhone 插入 Mac 时 "Enable web inspector on device"在 Desktop Safari 中变灰

iphone - 开发者为什么要关心 ios 设备是否越狱

ios - 奇怪的 UITableView 错误

iphone - CCRotateTo 和 CCRotateBy 区别

iphone - 链接器选项 'Link all assemblies"和 "Link SDK assemblies only"导致第 3 方静态库中出现 undefined symbol

iphone - 警告 : check_safe_call: could not restore current frame

iphone - 新手想要为 ipod touch 创建 PDF 阅读器 - 最好的方法是什么?

iOS - 如何将 AppDelegate 的 ManagedObjectContext 传递给来自 NavigationView 的 UIViewController

iphone - Cocos2D旋转和 anchor

iphone - 核心数据轻量级迁移——不能合并模型