绘制点,线,圆和贝塞尔路径的标准方法似乎是在drawRect
内绘制它们。我们不会直接致电drawRect
,而是让iOS调用它,我们可以使用[self setNeedsDisplay]
告诉iOS尝试拨打drawRect
的时候...... {/ p>
似乎我们也不能依赖
[self setClearsContextBeforeDrawing: NO];
在调用drawRect
之前不清除视图的背景。这个问题有一些细节:UIView: how to do non-destructive drawing?
如何直接在屏幕上绘图 - 而不将这些代码放在drawRect
中。例如,在ViewController.m
中,有一些代码直接在屏幕上绘制点,线,圆。这可能吗?
答案 0 :(得分:1)
无需进入OpenGL,最接近擦除的方法是使用类似CGBitmapContextCreateImage的内容将上下文转换为图像。从那里,您可以将图像保留在内存中(或在必要时将其写入磁盘),然后在重绘视图时,首先将此原始图像绘制到上下文中,然后用新内容覆盖它。