我在写一个应用程序,它使用您的手指绘制简单的图表。我有它的大部分工作,但现在我试图优化其性能。当用户快速挥动手指时,我无法捕捉足够的触摸事件来绘制平滑的路径。为iPhone SDK优化绘图(带手指触摸)应用程序
这是我目前的做法:
1)我的子类一个UIView并添加了一个poroperty到CGLayer(被懒洋洋地创建,其大小与我UIView相同)。 2)我的UIView子类通过在实例变量中存储当前触摸点和最后一个触摸点来响应触摸事件。 3)我的视图的setNeedsDisplay被调用,并且在绘制矩形中,执行以下操作: - 从前一个触摸位置到当前触摸位置绘制一条线到CGLayer - 一次绘制整个CGLayer到我的视图上下文
的主要问题是,当用户扫描快,我得到相对较少的触摸事件,所以我在触摸之间绘制线条很长,使得路径看锯齿状不顺利。
我的问题:
1)是否的drawRect(在我UIView子类)和我UIView子类我的触摸事件处理程序被调用在同一个线程?即我可以不得不执行线程(一个在触摸事件中,另一个在我的绘制矩形中)?
如果没有 - 做触摸事件被排队时被调用的drawRect?我该如何提高性能 - 简单地提高drawRect的性能?
如果是的话 - 我怎样才能得到更多的触摸事件发生,所以我可以得出一个平滑的路径?
谢谢。
所以我的drawRect和我的触摸事件处理程序都得到所谓的主线程上? 你是否建议每次触摸事件发生时,我应该开始一个新的线程,并在该线程中做我的绘图? – aloo 2009-07-14 17:19:10