我们正在重复制作CGLayer,进行处理,然后发布它。这实际上发生了很多。当然,每次制作一个全新的CGLayer都会有很多开销。所以......
最好只 保持图层周围,并且每次都删除它的所有数据 - 而不是从头开始创建一个新的。 / p>
注意:如果您绘制一个覆盖所有内容的空白或清晰矩形, 只会在现有路径上添加更多数据 。
那么,如何“擦除”或“重新开始”一个CGLayer?
有一个函数CGContextBeginPath(cc),但令人困惑:它似乎只清除了“那条”路径, 它似乎没有将所有CGLayer擦除回无数据状态
如何将CGLayer返回到无数据状态?有谁知道吗?
的更新... 的
经过大量的实验,我们已经确定似乎无法清除CGLayer中的所有数据(实际上令人失望)。
请注意,添加新的白色或透明矩形只会这样做 - 它实际上会添加更多数据。
所以很遗憾没有办法做到这一点。如果你在高hz(也许是为了计算)构建它们,你只需要每次都要重新开始。或者,你可以使用CGContextBeginPath()显然删除(实际删除,而不仅仅是覆盖) 一个 路径。
希望这将有助于将来的人。
答案 0 :(得分:2)
一旦你有了上下文调用CGContextClearRect(cc,someRect)来清除内容。
答案 1 :(得分:1)
为什么不用长方形(透明/白色)填充它? 如果你想用clearColor(透明)清除它,请确保该层不是不透明的。