ios - Quartz2D 在触摸时绘制点或线的好方法?

标签 ios iphone core-graphics quartz-2d

我正在尝试开发一个需要根据用户触摸进行绘图的应用程序。我正在使用 Quartz2D 和 CoreGraphics 进行绘图,现在我想知道管理我正在绘制的点的好方法是什么?目前,我将每个 touchMoved 点添加到一个数组中,并在每次移动时 setNeedsDisplay 它们。这使系统滞后得非常快。因此,我想知道是否有人知道一种在很长一段时间内通过用户触摸顺利绘制的好方法?谢谢!

最佳答案

触摸事件触发非常频繁。由于quartz2d 很慢,您的系统将会饱和。

几个选项

  • 切换到 opengl ^^(但这有点过分了)

  • 不要对每一个事件都进行抽签。让你触摸进入休眠状态(实际上这是一个 Android 解决方案,所以我不确定它是否适合 Iphone),只从 x 行中绘制 1 条。

  • 将触摸的坐标存储在某处,当您的应用准备好刷新用户界面时,获取存储的当前值并进行绘制。

  • 我提出的另一个解决方案是测试新位置是否实际上从 las 绘制中移动了一定量(比如说 1~3 px),这样我就可以避免刷新和重绘,如果更新位置太小。

这只是指针,可能有更好的选择适合您的情况^^

关于ios - Quartz2D 在触摸时绘制点或线的好方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4742613/

相关文章:

ios - Swift:(预)从initialViewController加载UIWebView

ios - Swift:如何移动 Storyboard中添加的按钮位置

xamarin.ios - 为什么这个 Core Graphics 绘图代码会生成不同的线宽?

ios - UIDatePicker 向用户显示今天的日期为 "Today"(Swift)

ios - 我不能在 Swift 中调用多个应用程序消息

iphone - 为什么我的代码会因某些 UIWebView 异常而崩溃?

objective-c - iPad - 同一屏幕中有多个 UITableView

iphone - 在 prefix.pch 中确定设备类型

ios - 从用户的触摸中画出一个完美的圆圈

cocoa - 防止 NSButtonCell 图像在其包含的 NSScrollView 之外绘制