Objective-CのCocoaTouchを使用して、ターゲット画像を描画する最適な方法(つまり、円内の円、十分に単純)を探してから、ユーザーのタッチを画像に記録します(xまたは+として表示される可能性があります)。マーク)、そしてさらに重要なことに、後で再描画するためにメモリ内にあります。
CoffeeShoppedの記事とソースを読んで実験することで学んだ、より正確なポジショニングを可能にするために、ユーザーが指を長時間押し続けるときにルーペを使用します。
Objective-CのCocoaTouchを使用して、ターゲット画像を描画する最適な方法(つまり、円内の円、十分に単純)を探してから、ユーザーのタッチを画像に記録します(xまたは+として表示される可能性があります)。マーク)、そしてさらに重要なことに、後で再描画するためにメモリ内にあります。
CoffeeShoppedの記事とソースを読んで実験することで学んだ、より正確なポジショニングを可能にするために、ユーザーが指を長時間押し続けるときにルーペを使用します。
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コードを簡単にするために、色を再利用していません
その画像を再利用して再描画する場合(たとえば、ユーザーが画像に触れたとき)、その描画を画像としてキャッシュする必要があります。
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)];
}