2011-12-10 7 views
1

どのように、私はこのコードを持っています。タッチが移動すると、ビューは線を追加します。 今、この行のために消しゴムを作成したいのですが、どうすればいいですか? 早めにお答えください。Xcodeでこの行の消しゴムを作成するにはどうしたらいいですか?

私は、これはあなたが探しているものだと思います
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { 

    UITouch *touch = [touches anyObject]; 
    CGPoint currentPoint = [touch locationInView:drawView]; 

    UIGraphicsBeginImageContext(drawView.frame.size); 
    [drawView.image drawInRect:CGRectMake(0, 0, drawView.frame.size.width, drawView.frame.size.height)]; 

    CGContextSetLineCap(UIGraphicsGetCurrentContext(), kCGLineCapRound); 
    CGContextSetLineWidth(UIGraphicsGetCurrentContext(), brushDimension); 

    const CGFloat *components = CGColorGetComponents([brushColor CGColor]); 
    CGContextSetRGBStrokeColor(UIGraphicsGetCurrentContext(), components[0], components[1], components[2], components[3]); 

    CGContextBeginPath(UIGraphicsGetCurrentContext()); 
    CGContextMoveToPoint(UIGraphicsGetCurrentContext(), lastPoint.x, lastPoint.y); 
    CGContextAddLineToPoint(UIGraphicsGetCurrentContext(), currentPoint.x, currentPoint.y); 
    CGContextStrokePath(UIGraphicsGetCurrentContext()); 

    drawView.image = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    lastPoint = currentPoint; 
} 
+0

もしあなたが http://stackoverflow.com/questions/3863931/want-to-このリンクヘルプipad-painting-application-by-quartz/12797513#comment19041354_12797513 –

答えて

-2

:あなたは、ユーザーが提供する代わりに、元に戻すのラインの一部を消去するためにタッチを使用することができます消去機能を探しているなら

http://soulwithmobiletechnology.blogspot.com/2011/06/redo-undo-in-paint-feature.html

+2

これは理論的にはqueに答えるかもしれませんがあなたの答えにリンクされた記事の重要な部分を含めること、そして参照のためのリンクを提供することが望ましいです(http://meta.stackexchange.com/q/8259)。そうしないと、リンク腐敗の危険があります。 –

4

RickyTheCoderには2つのオプションがあります。

  1. 最初のオプションは、それが実際には背景と同じ色で塗りつぶしまし ながらラインを消去してしまったとして、それが知覚よう 背景ビューの同じ背景色を持っているブラシを使用しています。

  2. 第2のオプションは、それがラインを消去し、背景ビューが依然として 見えるクリアするクリア色でブラシを使用し ブレンドモードを設定することです。

    (isErase) {

    CGContextSetLineWidth(currentContext, 10); 
    
    CGContextSetStrokeColorWithColor(currentContext, [UIColor clearColor].CGColor); 
    
    CGContextSetFillColorWithColor(currentContext, [UIColor clearColor].CGColor); 
    
    CGContextSetBlendMode(currentContext, kCGBlendModeClear); 
    
    CGContextDrawPath(currentContext, kCGPathStroke); 
    

    }

+0

こんにちは、ありがとうございました。私はそのようなあなたのコードを挿入しました: –

+0

そして、私はすでにいくつかの描画を描いてそれに画像をイメージビューを持っている場合。ここでこのコードを使用して図面を消去すると、図面とともに背景ビューを示す画像が消去されます。 – Shailesh

関連する問題