0

似乎绘制点、线、圆和贝塞尔路径的标准方法是将它们绘制在drawRect. 我们不直接调用drawRect,而是让iOS调用它,我们可以用来告诉iOS在可以调用的时候[self setNeedsDisplay]尝试调用......drawRect

看来我们也不能依赖

[self setClearsContextBeforeDrawing: NO];

在调用之前不清除视图的背景drawRect。这个问题中有一些细节:UIView:如何进行无损绘图?

直接在屏幕上绘图怎么样 - 无需将这些代码放入drawRect. 例如,在 中ViewController.m,有一些代码直接在屏幕上绘制点、线、圆。那可能吗?

4

1 回答 1

1

无需进入 OpenGL,您可以做的最接近擦除的方法是使用CGBitmapContextCreateImage 之类的东西将上下文转换为图像。从那里,您可以将图像保留在内存中(或在必要时将其写入磁盘),然后在重绘视图时,首先将原始图像绘制到上下文中,然后用新内容覆盖它。

于 2012-04-24T04:17:18.977 回答