0

ジェスチャ認識に基づいて線を描画するメソッドを実装しようとしていますが、UIBezierPath を表示できません。メソッドがアクティブになるたびにログに出力するため、ジェスチャ認識機能が機能していることがわかります。また、私を混乱させているのは、BezierPath を描画しようとする前に描画した青い線が表示されますが、BezierPath は表示されないことです。任意の点を手動で追加しても、次のように何も描画されません。

[myPath addLineToPoint:CGPointMake(50, 50)];

これが私のUIViewのコードです:

- (void)drawRect:(CGRect)rect
{

CGContextRef ctx = UIGraphicsGetCurrentContext(); 
CGContextSetRGBStrokeColor(ctx, 0, 0, 1.0, 1); 
CGContextMoveToPoint(ctx, 0, 150);
CGContextAddLineToPoint( ctx, 480, 150);
CGContextStrokePath(ctx);

[myPath addLineToPoint:CGPointMake(50, 50)];
[myPath stroke];
}

- (IBAction)handlePan:(UIPanGestureRecognizer *) recognizers {

CGPoint translation = [recognizers translationInView:self];
NSLog(@"Logged");

[myPath addLineToPoint:CGPointMake(translation.x, translation.y)];
[self setNeedsDisplay];
}

助けてくれてありがとう!

4

1 に答える 1

0

どこで myPath を初期化していますか? 初期化されていることを確認してください。

そして同じように

CGContextMoveToPoint(ctx, 0, 150);

、行を追加する前に myPath 上のポイントに move を呼び出す必要があります

[myPath moveToPoint:CGPointMake(0,150)];
[myPath addLineToPoint:CGPointMake(50, 50)];
于 2012-06-14T09:02:53.890 に答える