在iPhone和iPad上,我们可以在不使用drawRect的情况下绘制任何内容吗?

时间:2012-04-22 09:04:05

标签: ios uiview uikit

绘制点,线,圆和贝塞尔路径的标准方法似乎是在drawRect内绘制它们。我们不会直接致电drawRect,而是让iOS调用它,我们可以使用[self setNeedsDisplay]告诉iOS尝试拨打drawRect的时候...... {/ p>

似乎我们也不能依赖

[self setClearsContextBeforeDrawing: NO];

在调用drawRect之前不清除视图的背景。这个问题有一些细节:UIView: how to do non-destructive drawing?

如何直接在屏幕上绘图 - 而不将这些代码放在drawRect中。例如,在ViewController.m中,有一些代码直接在屏幕上绘制点,线,圆。这可能吗?

1 个答案:

答案 0 :(得分:1)

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