1

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

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

我对 UIImageView 进行了一些转换,然后调用 setNeedsDisplay 标记父视图以触发 drawRect。当 drawRect 再次触发时,它似乎再次渲染图像而没有删除旧图像。

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

如何在清除下一个图像之前清除旧图像?这几乎就像一旦使用 drawInRect 渲染图像,它们就会被遗忘。

4

1 回答 1

0

你试过用 画图kCGBlendModeClear吗?这应该使您能够在绘制新的之前清除事物。

或者,您可以尝试在屏幕外位图上下文中进行绘图。然后在你的drawRect,从这个屏幕外缓冲区复制到视图。这可能会成功地覆盖旧图像。

编辑:基本上你会kCGBlendModeClear在绘制新内容之前用作橡皮擦。

于 2013-05-30T18:00:59.840 回答