次のコードを使用して、フィンガー ペインティング タイプの演習用に永続的な DrawRect を作成しています。
シミュレーターで実行すると問題ありませんが、iPad で実行するとギザギザの線でカーブを回すのが遅くなります。最適化またはより良い方法の提案を手伝ってください。
前もって感謝します
- (void)drawRect:(CGRect)rect
{
UIGraphicsPushContext(drawingContext);
CGImageRef cgImage = CGBitmapContextCreateImage(drawingContext);
image = [[UIImage alloc] initWithCGImage:cgImage];
if (draw) {
CGContextSetLineWidth(drawingContext, (2.0 * size) );
CGContextSetStrokeColorWithColor(drawingContext, color);
CGContextSetLineCap(drawingContext,kCGLineCapRound);
CGContextMoveToPoint(drawingContext, lastPt.x - (31.0 / self.transform.a), lastPt.y - (31.0 / self.transform.a) );
CGContextAddLineToPoint(drawingContext, currPt.x - (31.0 / self.transform.a), currPt.y - (31.0 / self.transform.a) );
CGContextStrokePath(drawingContext);
} else {
// CGContextSetFillColorWithColor(drawingContext, [[UIColor redColor] CGColor]);
// CGContextFillRect(drawingContext, CGRectMake( currPt.x - (31.0 / self.transform.a) - 16.0 , currPt.y - (31.0 / self.transform.a) - 16.0 , 40.0 , 40.0) );
CGContextClearRect(drawingContext, CGRectMake( currPt.x - (31.0 / self.transform.a) - 16.0 , currPt.y - (31.0 / self.transform.a) - 16.0 , 40.0 , 40.0) );
}
UIGraphicsPopContext();
CGImageRelease(cgImage);
NSLog(@" %@ " , rect);
[image drawInRect: rect];
lastPt = currPt;
}