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 回答