我正在製作一個應用程序,允許用戶用不同顏色的手指在屏幕上繪製。圖紙是用UIBezierPaths繪製的,但我需要一個橡皮擦。我確實有一個橡皮擦只是背景圖像作爲顏色的路徑,但是這種方法會導致內存問題。我想刪除選擇橡皮擦時所繪製的任何路徑上的點。UIBezierPath從另一個UIBezierPath減去
不幸的是UIBezierPath沒有減法函數,所以我想自己做。因此,如果選擇了橡皮擦,它將查看應該擦除的所有點,並查看是否有任何現有路徑包含這些點,然後細分留下空白點的路徑。但它應該能夠看到連續刪除多少個點不一次一個。理論上它是有道理的,但我在開始實施時遇到了麻煩。
任何人有任何指導,讓我在正確的'路徑'?
這是不必要的複雜。是否有一個原因,你不能光柵化的路徑(即繪製它們到一個CGBitmapContext,只需在drawRect中繪製上下文)?這將消除你的記憶問題(並且使用kCGBlendModeClear代替與BG擦除相同顏色的筆畫)。你的方法會很快變慢。 – borrrden 2012-07-28 02:12:18