2013-05-30 54 views
1

我有一个设置,我需要渲染3个图像并将它们混合。我在drawRect中使用drawInRect呈现的清晰图像

[self.backImage.image drawInRect:self.backImage.frame blendMode:kCGBlendModeNormal alpha:1.0]; 

我做了一些UIImageView的变换使用,然后调用setNeedsDisplay父视图触发的drawRect有其标志。当drawRect再次触发时,它似乎再次渲染图像而没有删除旧图像。

我在父级和图像视图上设置了clearsContextBeforeDrawing,但似乎无法解决问题。

如何清除旧图像才能清除下一个图像?这几乎就像一旦使用drawInRect呈现图像,他们就会被遗忘。

回答

0

您是否尝试过使用kCGBlendModeClear进行绘图?这应该使您能够在绘制新图之前清除所有内容。

或者,您可以尝试将您的图形绘制到离屏位图上下文中。然后在您的drawRect中,从此屏幕外缓冲区复制到视图。这可能会成功画出旧图像。

编辑:基本上你会使用kCGBlendModeClear作为橡皮擦,然后绘制新的内容。

+0

谢谢。我会尝试kCGBlendModeClear。 – jarryd