Core-Plot:在reloadData上保持放大范围

时间:2016-09-11 14:09:54

标签: ios objective-c core-plot

我的CPTScatterPlot允许缩放以放大以查看更详细的数据,以及一些可以更改的参数。每当参数改变时,我都会重新计算数据点,然后是reloadData。但是,这再次显示了整个数据范围,而不是保持放大的范围。

编辑:到目前为止我尝试过:

-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate
{
    CPTPlotRange *updatedRange = nil;

    switch ( coordinate )
    {
        case CPTCoordinateX:
            if ([newRange isEqualToRange: ((CPTXYPlotSpace *)space).globalXRange]) {
                updatedRange = ((CPTXYPlotSpace *)space).xRange;
            }
            else {
                updatedRange = newRange;
            }
        break;

    case CPTCoordinateY:
    case CPTCoordinateZ:
    case CPTCoordinateNone:
        break;
    }

    return updatedRange;
}

我有一个预感我需要在这个委托方法中做到这一点,但我还没有弄清楚如何。

有没有办法在调用reloadData时保持放大范围?

编辑2 :通过添加dataIsLoaded标志解决,这样我最初只设置xRange,但不会在每次重新计算时设置delegate。上面的{{1}}方法与问题无关。

0 个答案:

没有答案