2016-07-20 1 views
0

UIBezierpathを使用してUIViewにドットを描画しています。 私はこのリンクをたどって同じことを続けました。UIBezierpathパスから描画された単一のドットを削除できません。

How can i draw a dot on the screen on touchesEnded using UIBezierpath

今、私はこれを行っていたとき、私は私ができる限り「ドット」を追加することができています。これらのドットを配列に追加してUIViewに表示します。

消しゴムの選択時にアレイをクリーニングすると、すべてのドットがクリアされます。私は単一の/特定のドットをクリアすることはできません。

これは、配列にドットを追加してUIViewに表示する方法です。

- (void)drawRect:(CGRect)rect 
{ 
    [incrementalImage drawInRect:rect]; 
     for (int i = 0; arrayOfDots.count>i;i++) 
     { 
      UIBezierPath *path = [arrayOfDots objectAtIndex:i]; 
      UIColor *color = [arrayOfDotColor objectAtIndex:i]; 
      [color setFill]; 
      [path fill]; 
     } 
} 

私は、UIViewで描画されたものをきれいにする消しゴムがあります。 UIBezierpathを使って描いた線をきれいにすることができましたが、同じUIBezierpathを使って描かれた点をクリアすることはできません。

消しゴムは何もありませんが、私はちょうど白い色を選んでいて、私の現在のビューで同じ白い色を描いています。

ここは、消しゴムのコードです。

self.strockColour = [UIColor colorWithRed:255.0/255.0 green:255.0/255.0 blue:255.0/255.0 alpha:1.0f]; 

[objBezierpath setLineWidth:25]; 

特定の選択したドットを削除する方法については、いずれも同じことができます。

ありがとうございます。

答えて

1

私はあなたのコードフラグメントを正しく理解していれば、配列内のすべてのドットに対して新しいUIBezierPathオブジェクトをインスタンス化しています。

あるドットを消去する場合は、点の配列を変更可能にする必要があります。実際のパスオブジェクトを配列から削除する必要があります。

単一のUIBezierPathオブジェクトを作成し、CGPointsだけを格納する配列を持つことをお勧めします。

関連する問題