我正在尝试开发一个需要根据用户触摸进行绘图的应用程序。我正在使用 Quartz2D 和 CoreGraphics 进行绘图,现在我想知道管理我正在绘制的点的好方法是什么?目前,我将每个 touchMoved 点添加到一个数组中,并在每次移动时 setNeedsDisplay 它们。这使系统滞后得非常快。因此,我想知道是否有人知道一种在很长一段时间内通过用户触摸顺利绘制的好方法?谢谢!
最佳答案
触摸事件触发非常频繁。由于quartz2d 很慢,您的系统将会饱和。
几个选项
切换到 opengl ^^(但这有点过分了)
不要对每一个事件都进行抽签。让你触摸进入休眠状态(实际上这是一个 Android 解决方案,所以我不确定它是否适合 Iphone),只从 x 行中绘制 1 条。
将触摸的坐标存储在某处,当您的应用准备好刷新用户界面时,获取存储的当前值并进行绘制。
我提出的另一个解决方案是测试新位置是否实际上从 las 绘制中移动了一定量(比如说 1~3 px),这样我就可以避免刷新和重绘,如果更新位置太小。
这只是指针,可能有更好的选择适合您的情况^^
关于ios - Quartz2D 在触摸时绘制点或线的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742613/