我想构建一个小的折线图,当我调用我的 setPointInGraph:
方法时它会得到更新。每次我调用它时,我都希望图表用我刚刚添加的点进行更新,因此从我的最后一个点画一条线。我在下面的代码中看到问题,在“drawRect:”中,它只是不断覆盖旧路径。
- (void)setPointInGraph:(float)p {
self.point = p;
[self setNeedsDisplay];
}
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGFloat maxX = CGRectGetMaxX(rect);
CGFloat maxY = CGRectGetMaxY(rect);
CGColorRef strokeColor = [self.lineColor CGColor];
CGContextSetStrokeColorWithColor(context, strokeColor);
CGContextSetLineWidth(context, self.lineWidth);
CGContextBeginPath(context);
CGContextMoveToPoint(context, 0.0, maxY - maxY * self.point);
CGContextAddLineToPoint(context, maxX * (point / count), maxY - maxY * self.point);
CGContextStrokePath(context);
count++;
}
如何保留路径(例如属性)并在我选择时更新它?我怎样才能不断地添加到这个路径而不是覆盖它?
最佳答案
使用UIBezierPath
。您可以通过调用 addLineToPoint
添加新线段。
关于objective-c - iOS:持续更新路径的 CGContextStrokePath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7899202/