2

我有一个TestView继承自,并且使用它的方法UIView在屏幕上绘制所有内容。drawRect

但是如果我不想drawRect在绘制之前清除视图,我使用

self.clearsContextBeforeDrawing = NO;  
self.opaque = NO;   // also added because the doc says the rect 
                    //   passed to drawRect will be filled with 
                    //   background color first if it is set to YES

initWithFrame方法中。

drawRect方法通过使用调用

[self.view setNeedsDisplay];

ViewController事件处理程序中。(对于 touchesMoved 事件)

但是,在绘制任何东西之前,一切都被清除了吗?如何让它发挥作用?

4

1 回答 1

3

我认为回答了你的问题。从答案:

您无法通过执行以下操作来防止内容被删除:

[自我setClearsContextBeforeDrawing:否];

这只是对图形引擎的一个提示,让它为您预先清除视图是没有意义的,因为无论如何您可能需要重新绘制整个区域。它可能会阻止您的视图被自动删除,但您不能依赖它。

于 2012-04-21T21:22:18.550 回答