1

UIImageViewから継承されたクラス Canvas が あり(背景には画像 background.png が設定されています)、メソッド touchesMoved で特定の色のジェスチャを描画します。

UITouch *touch = [touches anyObject];
CGPoint currentLocation = [touch locationInView:self];  

UIGraphicsBeginImageContext(self.frame.size); 
CGContextRef ctx = UIGraphicsGetCurrentContext();  

[self.image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
CGContextSetLineCap(ctx, kCGLineCapRound);
CGContextSetLineWidth(ctx, width);
CGContextSetRGBStrokeColor(ctx, red, green, blue, alpha);
CGContextBeginPath(ctx);
CGContextMoveToPoint(ctx, location.x, location.y);
CGContextAddLineToPoint(ctx, currentLocation.x, currentLocation.y);
CGContextStrokePath(ctx);
self.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

location = currentLocation;

以下の ERASE ボタンがあります。キャンバスのコンテキストをクリアする方法ですが、background.png を背景として保持し、ユーザーがタッチで描画したもののみを削除します (プロパティ canvas があります)。

4

1 に答える 1

2

次のように、画像ビューの上に透明な四角形を描くことができます。

CoreGraphics: 画像の透明な背景

于 2012-06-26T20:24:48.013 に答える