お絵かきアプリであるような
キャンバス上にタッチしたら画像が重なるアレを考えてみました。
元となる画像(UIImage)に追加する画像(UIImage)を次々と貼りつけて
UIImageViewに表示させるイメージです。
// 画面に指をタッチされた時
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
// タッチ開始座標をインスタンス変数touchPointに保持
UITouch *touch = [touches anyObject];
touchPoint = [touch locationInView:canvas];
UIImage* addImage = [UIImage imageNamed:@"draw_square.png"];
// 描画領域をcanvasの大きさで生成
UIGraphicsBeginImageContext(canvas.frame.size);
// canvasにセットされている画像(UIImage)を描画
[canvas.image drawInRect:CGRectMake(0, 0, canvas.frame.size.width,canvas.frame.size.height)];
// 追加するイメージをタッチした座標位置に配置(ここは画像サイズを計算した方がよさげ)
[addImage drawAtPoint:CGPointMake(touchPoint.x, touchPoint.y)];
// 描画領域を画像(UIImage)としてcanvasにセット
canvas.image = UIGraphicsGetImageFromCurrentImageContext();
// 描画領域のクリア
UIGraphicsEndImageContext();
}
上の実装でとりあえずは動いたけど、
正しいかどうかはこれからテストしようかと。。。