我正在制作一个应用程序,允许用户用不同颜色的手指在屏幕上绘制。图纸是用UIBezierPaths绘制的,但我需要一个橡皮擦。我确实有一个橡皮擦只是背景图像作为颜色的路径,但是这种方法会导致内存问题。我想删除选择橡皮擦时所绘制的任何路径上的点。UIBezierPath从另一个UIBezierPath减去
不幸的是UIBezierPath没有减法函数,所以我想自己做。因此,如果选择了橡皮擦,它将查看应该擦除的所有点,并查看是否有任何现有路径包含这些点,然后细分留下空白点的路径。但它应该能够看到连续删除多少个点不一次一个。理论上它是有道理的,但我在开始实施时遇到了麻烦。
任何人有任何指导,让我在正确的'路径'?
这是不必要的复杂。是否有一个原因,你不能光栅化的路径(即绘制它们到一个CGBitmapContext,只需在drawRect中绘制上下文)?这将消除你的记忆问题(并且使用kCGBlendModeClear代替与BG擦除相同颜色的笔画)。你的方法会很快变慢。 – borrrden 2012-07-28 02:12:18