0

重複の可能性:
タッチイベントで線を引く方法は?

多くの閲覧の後、関連する回答がまだ見つかりませんでした。実行時にプログラムでiOS UIViewに複数の線を描画したい、つまり、ユーザーが画面上で指でドラッグして線を描画できるようにします。ただし、問題は、2 番目の線を描画すると、最初に描画された線が削除されることです。最初の線をその座標にとどめ、ユーザーは画面上をドラッグして 2 番目の直線を描くことができます。添付のコードは次のとおりです。

CGContextRef context    = UIGraphicsGetCurrentContext();                
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);    
CGContextSetLineWidth(context, 2.0);        
CGContextMoveToPoint(context, touchPoint.x,touchPoint.y); 
CGContextAddLineToPoint(context, lastTouchPoint.x, lastTouchPoint.y);
CGContextStrokePath(context);
4

1 に答える 1

1

あなたへのすべての呼び出しで、あなたが完全に描画しなければならない領域を定義するdrawRectaが渡され、その領域の古いコンテンツはなくなります。デフォルトでは、より良いロジックがない場合は、ビュー内のすべての線(すべての線)を描画する必要があります。dirtyRect

これは更新呼び出しではなく、古いものは保持されません。

-

すべてのタッチを発生順に配列に追加し、drawRectですべてのタッチを描画できます。

于 2012-12-27T23:41:12.913 に答える