我正在尝试开发一款需要根据用户触摸进行绘图的应用。我正在使用Quartz2D和CoreGraphics绘图,现在我想知道什么是管理我正在绘制的点的好方法?目前我正在将每个touchMoved点添加到数组中,并且setNeedsDisplay在每次移动时都会显示它们。这非常快地滞后于系统。因此,我想知道是否有人知道一个很好的方法来平滑地用户触摸很长时间?谢谢!
答案 0 :(得分:1)
非常频繁地触发触摸事件。由于quartz2d很慢,你的系统会饱和。
几个选项
切换到opengl ^^(这是一种矫枉过正)
不要对每一个事件进行抽奖。让你触摸睡觉(实际上这是一个Android解决方案所以我不确定它对Iphone的好处),只能从x行中抽出1个。
将触摸的坐标存储在某处,当您的应用程序准备好刷新ui时,获取当前值并进行绘制。
我已经采取的另一个解决方案是测试新位置是否实际上从拉斯维加斯抽取了一定数量(比如1~3 px)这样我避免刷新和重绘如果更新的位置很小。
这只是指针,你可能会有一个更好的选择^^