NSString drawInRect与核心文本

时间:2012-05-13 16:02:58

标签: iphone objective-c ios core-text

我在文档中读到NSString类别方法drawInRect适用于少量文本,但对于大量文本来说,开销太大。在我的情况下,替代方案是使用核心文本CTFrameDraw

我的问题是,使用drawInRect与核心文本之间的“截止”点是什么?核心文本总是比drawInRect快吗?如果额外的编程不是问题,我是否总是只使用Core Text而不是drawInRect,即使是小字符串?

大多数情况下,我会画段落,但有时它们也可能是短线。

3 个答案:

答案 0 :(得分:1)

对于我来说,当我有来自平面设计师的一些特定要求时,它会使用核心文本。比如需要混合颜色,类型,字体大小等的标签.drawRect是在视图层中绘制东西的方法,只是CG函数的包装,核心文本是完整的框架来处理如何绘制文本:更改字体,空间,界线。 我的意思是作为比较不公平,更好的问题可能是使用核心文本而不是常见的UI文本porpoise obejects,答案是基于你的app设计-UI相关的要求。希望这会有所帮助。

答案 1 :(得分:0)

我会编写一些测试代码,使用您预期的字符串内容统计分布来对所考虑的两种方法进行基准测试。也许每个数千万字符串渲染的时间。在实际的iOS设备上运行基准测试,因为使用ARM目标框架可能会有不同的相对性能。

答案 2 :(得分:0)

我想知道使用UIWebView是否可以获得所有可能的性能。 iOS(和每个操作系统)都有一个不断加载的webkit。它也非常优化。它也可以卸载工作。

有趣的比较。