1

私はスタンフォード CS193p コースに取り組んでおり、グラフを描こうとしています。軸の描画は機能しますが、グラフ自体を描画できません。私はメッセージを受け取っています

CGContextAddLineToPoint: no current point.

描こうとすると。これがコードです。

- (void)drawRect:(CGRect)rect
{
NSLog(@"Drawing Graph View");
CGPoint origin = CGPointMake(20, 350);
CGRect rect2 = CGRectMake(origin.x, origin.y, 250, -250);
[AxesDrawer drawAxesInRect:rect2 originAtPoint:origin scale:[self scale]];

CGContextRef context = UIGraphicsGetCurrentContext();



UIGraphicsPushContext(context);

CGContextSetLineWidth(context, 2);
[[UIColor redColor] setStroke];


CGContextMoveToPoint(context, origin.x, origin.y);
for (CGFloat i=0; i<250; i++) {

    CGFloat yChange = [self.dataSource deltaY:self];

    CGContextAddLineToPoint(context, origin.x+i, origin.y-yChange);

    CGContextStrokePath(context);

}

UIGraphicsPopContext();

}
4

2 に答える 2

5

ループCGContextStrokePath(context);の外側に配置する必要があります。forそうしないと、ループを実行するたびに新しいパスが作成され、失敗します。

于 2012-02-05T16:18:04.783 に答える
2

次のことでお困りではありませんか?

CGRectMake(origin.x, origin.y, 250, -250)

負の高さを指定しています!

于 2012-02-05T17:53:46.407 に答える