为什么在iPad上,self.clearsContextBeforeDrawing = NO;在绘制之前不会使drawRect自行清除

时间:2012-04-21 17:54:32

标签: ios uikit

我有一个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事件)

但是,在绘制任何东西之前,一切都已清除了?如何使它工作?

1 个答案:

答案 0 :(得分:3)

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

  

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

     

[self setClearsContextBeforeDrawing:NO];

     

这仅仅是对图形引擎的暗示,没有必要让它为您预先清除视图,因为您可能需要重新绘制整个区域。它可能会阻止您的视图被自动删除,但您无法依赖它。