CorePlot(IOS):绘制可见区域(放大/缩小后)

时间:2012-09-09 08:06:51

标签: ios core-plot

问题:

假设我有一个等式: y = x ^ 2

使用核心情节我这样做:

-(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;
    }

但即使在缩小后(X轴显示从0到5000的点),这也只会绘制3000点。所以该区域的其他部分未提取。

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

有人知道怎么做吗?

1 个答案:

答案 0 :(得分:0)

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

您可以使用绘图空间委托来查找用户缩放或滚动图表的时间。在委托方法内的图上调用reloadData以重新计算绘图数据。