我正在研究iPhone的实时语法荧光笔,并且创建了一个自定义的UIView,它接受一个字符串,解析它,然后在其drawRect:方法中突出显示它。我也实现了一个闪烁的光标。但是,它开始有点慢,我认为当我实现多线处理和块处理时,它会减慢速度。但是,我尝试将[formattedTextView setNeedsDisplayInRect:]
调用放在我的视图控制器中的一个函数中,然后使用[self performSelectorInBackground:@selector(updateDisplay) withObject:nil]
调用单独的线程。现在键盘的响应速度更快,但这似乎是单核处理器上线程的糟糕用法。多线程文本处理的成本/收益
做这样的事情有没有问题?
感谢
我最终删除了后台处理,因为如果连续快速输入很多字符会导致延迟。 至于你的其他要点: - 我正在应用正则表达式到当前可编辑的行。 - 我只通过调用setNeedsDisplayInRect更新当前行:,UIView的其余部分保持着色。 在我看来,减速的主要原因是闪烁的光标(在awakeFromNib中设置CABasicAnimation的CALayer)有什么方法来优化这个动画? 另外,什么是ast?我以前没有听说过,我正在使用NSMutableArray。 – Kyle 2009-05-03 17:33:20