【发布时间】:2011-08-29 01:52:30
【问题描述】:
当 Core Text 在原始 iPad 上运行时,我发现它存在一些性能问题。
我使用 Core Text 和基于 OmniGroup 的 OUIEditableFrame 的 UITextInput 协议创建了一个可编辑视图。
当视图中有相当数量的文本(例如 180 行)时,打字/输入会大大滞后,并且点击一个键通常需要 1-2 秒。
使用带有模拟器的仪器,我能够缩小问题范围并找出花费了这么多时间的原因。原来是因为我每次击键都重绘框架,占用这么多时间的是调用CTFramesetterCreateWithAttributedString和CTFramesetterCreateFrame。
我必须在每次击键时重绘以更新文本,这意味着调用CTFramesetterCreateWithAttributedString 和CTFramesetterCreateFrame。
有没有其他人遇到过这个问题,如果有,他们是如何解决的?
编辑:
做了一些进一步的调查,结果发现如果属性字符串没有属性,那么一切都绘制得更快并且没有任何延迟。更改字体、颜色或段落样式都会减慢速度。知道这是否与它有关吗?
【问题讨论】:
标签: objective-c ios ipad core-text