8

Objective-CのCocoaTouchを使用して、ターゲット画像を描画する最適な方法(つまり、円内の円、十分に単純)を探してから、ユーザーのタッチを画像に記録します(xまたは+として表示される可能性があります)。マーク)、そしてさらに重要なことに、後で再描画するためにメモリ内にあります。

CoffeeShoppedの記事とソースを読んで実験することで学んだ、より正確なポジショニングを可能にするために、ユーザーが指を長時間押し続けるときにルーペを使用します。

4

2 に答える 2

0

uiview のサブクラスを作成し、drawRect を実装する

- (void)drawRect:(CGRect)rect {
    CGRect circleRect = self.bounds;

    CGFloat circleWidth = circleRect.size.width / 5.0;
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
    CGContextFillEllipseInRect(context, circleRect);

    circleRect = CGRectInset(circleRect, circleWidth, circleWidth);
    CGContextSetFillColorWithColor(context, [[UIColor whiteColor] CGColor]);
    CGContextFillEllipseInRect(context, circleRect);        

    circleRect = CGRectInset(circleRect, circleWidth, circleWidth);
    CGContextSetFillColorWithColor(context, [[UIColor redColor] CGColor]);
    CGContextFillEllipseInRect(context, circleRect);
}

描きます

ここに画像の説明を入力

ビューの backgoundColor を設定[UIColor clearColor]して、端の周りが黒くならないようにする必要があります。

これをループに微調整することもできますが、それは私が示すことができる最も単純なコード例です。

注:arc/nonarcコードを簡単にするために、色を再利用していません

于 2012-11-18T04:52:01.143 に答える
-1

その画像を再利用して再描画する場合(たとえば、ユーザーが画像に触れたとき)、その描画を画像としてキャッシュする必要があります。

1)ターゲットを描画します(以下で説明します)
2)現在のコンテキストから画像を作成します

 UIImage *image = UIGraphicsGetImageFromCurrentImageContext();

3)その画像を保存し、次回再利用します

- (void)drawRect:(CGRect)rect {
    if(image == nil) {
        image = [self drawTargetImage]; //use code that mentioned below to create image 
    }
    [image drawAtPoint:CGPointMake(10, 10)];
}
于 2012-12-03T11:42:42.673 に答える