0

问题:

假设我有一个方程:y = x^2

使用 core-plot 我这样做:

-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot {
    return 3000;
}

-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
    {
        NSNumber *num = nil;

        switch ( fieldEnum ) {
            case CPTScatterPlotFieldX:
                num = [NSNumber numberWithUnsignedInteger:index];
                break;
            case CPTScatterPlotFieldY:
                num = [NSNumber numberWithUnsignedInteger:index*index];
                break;
        }

        return num;
    }

但这只会绘制 3000 个点,即使在缩小后(当 X 轴显示从 0 到 5000 的点时)。所以其余区域未绘制。

我想要的是:缩小后,我可以在整个可见区域刷新绘图。

有人知道怎么做吗?

4

1 回答 1

0

首先,我会将点数限制为不超过可用于绘制绘图的像素数。除此之外,只是需要更多的时间来绘制而没有明显的好处。查看绘图区域边界的大小以获取绘图区域的尺寸。contentsScale如果您可能在配备 Retina 显示屏的设备上运行,则将宽度和高度乘以。

您可以使用绘图空间委托来了解用户何时缩放或滚动图形。在您的委托方法中调用reloadData绘图以重新计算绘图数据。

于 2012-09-09T17:24:49.173 回答