努力清除CGLayer中的所有数据 - 甚至可以做到吗?

时间:2011-01-04 13:51:13

标签: iphone cocoa cglayer

我们正在重复制作CGLayer,进行处理,然后发布它。这实际上发生了很多。当然,每次制作一个全新的CGLayer都会有很多开销。所以......

最好只 保持图层周围,并且每次都删除它的所有数据 - 而不是从头开始创建一个新的。 / p>

注意:如果您绘制一个覆盖所有内容的空白或清晰矩形, 只会在现有路径上添加更多数据

那么,如何“擦除”或“重新开始”一个CGLayer?

有一个函数CGContextBeginPath(cc),但令人困惑:它似乎只清除了“那条”路径, 它似乎没有将所有CGLayer擦除回无数据状态

如何将CGLayer返回到无数据状态?有谁知道吗?

更新...

事实证明实际上没有办法做到这一点。

经过大量的实验,我们已经确定似乎无法清除CGLayer中的所有数据(实际上令人失望)。

请注意,添加新的白色或透明矩形只会这样做 - 它实际上会添加更多数据。

所以很遗憾没有办法做到这一点。如果你在高hz(也许是为了计算)构建它们,你只需要每次都要重新开始。或者,你可以使用CGContextBeginPath()显然删除(实际删除,而不仅仅是覆盖) 一个 路径。

希望这将有助于将来的人。

2 个答案:

答案 0 :(得分:2)

一旦你有了上下文调用CGContextClearRect(cc,someRect)来清除内容。

答案 1 :(得分:1)

为什么不用长方形(透明/白色)填充它? 如果你想用clearColor(透明)清除它,请确保该层不是不透明的。