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

6
我正在查看苹果的SimpleTextInput示例代码,这是一个iOS文本编辑器的示例项目,使用Core Text来显示文本。这是一件很棒的事情。
但它的ReadMe文件说:
这个示例代码不应该被视为文本编辑器的模板,而是作为将文本输入系统绑定到现有文本编辑器的示例。该项目对CoreText的使用是天真和低效的;它仅处理从左到右的文本布局,并且它绝不是任何文本编辑器的好模板。它只是一个实现,旨在说明如何将系统键盘(即文本输入系统)绑定到某个现有文本编辑器。
我很好奇这个文本编辑器为什么效率低下。它的设计中是否存在根本性问题?是否可以通过简单的调整来改善?UITextView可能隐藏了非常复杂的缓存算法;因此,问题是SimpleTextInput缺乏它们吗?
2个回答

3

苹果的SimpleTextInput示例代码使用在单个CTFrameRef对象中一次性绘制所有文本:这是最简单的选项,因为您可以让核心文本只绘制一个块。唯一的缺点是,每次按键和编辑时重新创建CTFrameRef并重新绘制所有文本将使应用程序变慢,特别是如果有大量文本和属性。

要了解更有效的实现核心文本编辑器的方法,请阅读富文本编辑:选择主题:逐行绘制


0

我看过它,它没有实现所有的方法,可能这就是他们所说的原因。根据你的项目和需要,你可以使用并扩展它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接