为什么Apple的SimpleTextInput示例代码效率低下

时间:2011-10-30 16:32:01

标签: ios performance cocoa-touch core-text

我正在查看Apple的SimpleTextInput sample code,这是一个使用Core Text显示文本的iOS文本编辑器的示例项目。这是一件很棒的事。

但其自述文件说:

  

此示例代码不应被视为文本编辑器的模板,而是作为如何将文本输入系统绑定到预先存在的文本编辑器的示例。该项目使用CoreText是天真和低效的;它只处理从左到右的文本布局,对于任何文本编辑器来说它绝不是一个好的模板。这是一个实现,仅用于说明如何将系统键盘(即文本输入系统)绑定到某些预先存在的文本编辑器。

我很好奇 这个文本编辑器效率低下。它的设计是否具有根本性?简单的调整可以改善吗? UITextView可能有隐藏在其中的精心设计的缓存算法;那么问题是SimpleTextInput缺少它们吗?

2 个答案:

答案 0 :(得分:3)

Apple的SimpleTextInput sample code,使用在单个CTFrameRef对象中一次性绘制文本:这是最简单的选项,因为您可以获取核心文本以在一个块中绘制所有内容。唯一的缺点是,在每次击键时重新创建CTFrameRef并在每次编辑时重新绘制所有文本都会降低您的应用速度,尤其是在有大量文本和大量属性的情况下,效率低下。

有关实施核心文本编辑器的更有效方法,请阅读Rich Text Editing : The choices主题:逐行绘制

答案 1 :(得分:0)

我已经看过了,它没有实现所有方法,可能就是他们说的原因。取决于您的项目和需求,您可以使用和扩展它。