5

drawRectを使用して、メソッドの外で円、長方形、線などの形状を描画できますか

CGContextRef contextRef = UIGraphicsGetCurrentContext();

drawRectまたは、内部でのみ使用することが必須ですか。メソッドの外で図形を描く方法を教えてくださいdrawRecttouchesMoved実際には、イベントにドットをプロットし続けたいと思っています。

これは、ドットを描画するための私のコードです。

CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextSetRGBFillColor(contextRef, 0, 255, 0, 1);
CGContextFillEllipseInRect(contextRef, CGRectMake(theMovedPoint.x, theMovedPoint.y, 8, 8));
4

2 に答える 2

15

基本的に、何かを描くにはコンテキストが必要です。コンテキストをホワイト ペーパーとして想定できます。有効なコンテキストにない場合UIGraphicsGetCurrentContextに返されます。ビューのコンテキストを取得します。nulldrawRect

そうは言っても、メソッドの外に描画できますdrawRect。imageContext を開始して物事を描画し、それをビューに追加できます。

hereから取った以下の例を見てください。

    - (UIImage *)imageByDrawingCircleOnImage:(UIImage *)image
{
    // begin a graphics context of sufficient size
    UIGraphicsBeginImageContext(image.size);

    // draw original image into the context
    [image drawAtPoint:CGPointZero];

    // get the context for CoreGraphics
    CGContextRef ctx = UIGraphicsGetCurrentContext();

    // set stroking color and draw circle
    [[UIColor redColor] setStroke];

    // make circle rect 5 px from border
    CGRect circleRect = CGRectMake(0, 0,
                image.size.width,
                image.size.height);
    circleRect = CGRectInset(circleRect, 5, 5);

    // draw circle
    CGContextStrokeEllipseInRect(ctx, circleRect);

    // make image out of bitmap context
    UIImage *retImage = UIGraphicsGetImageFromCurrentImageContext();

    // free the context
    UIGraphicsEndImageContext();

    return retImage;
} 
于 2013-05-29T12:11:36.280 に答える