将核心图x轴移动到最后一点

时间:2011-10-01 02:33:23

标签: iphone ios core-plot

我的iPhone应用程序中的核心情节图很好地绘制。但是,有一件事我似乎无法弄明白。如何在视图加载后将图形滚动到其x轴的末尾,而不是从原点开始?我希望图形出现时x轴上的最后一个数据点可见。怎么样?

我看到了plotSpace:willDisplaceBy:委托方法,它与我需要的“接近”,但我需要能够告诉图形在其视图加载时将自身移位到x轴的末尾。我没有找到核心图的任何相关示例代码来执行此操作。

2 个答案:

答案 0 :(得分:7)

您需要设置绘图空间的xRange,以便最后一个点可见。如果您知道要显示的结束值和范围的长度,则可以执行以下操作:

CPTXYPlotSpace *plotSpace = graph.defaultPlotSpace;
plotSpace.xRange = [CPTPlotRange rangeWithLocation:CPTDecimalFromDouble(end - length)
                                            length:CPTDecimalFromDouble(length)];

该示例假定所需长度为正,您的值为双倍。当然,如果需要,您可以使用NSDecimal值进行计算。

答案 1 :(得分:0)

使用此方法:

-(CPPlotRange *)plotSpace:(CPPlotSpace *)space willChangePlotRangeTo:(CPPlotRange *)newRange forCoordinate:(CPCoordinate)coordinate
{
    if (coordinate == CPCoordinateY) {
        CPPlotRange *maxRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(0.0f) length:CPDecimalFromFloat(6.0f)];
        CPPlotRange *changedRange = [[newRange copy] autorelease];
        [changedRange shiftEndToFitInRange:maxRange];
        [changedRange shiftLocationToFitInRange:maxRange];
        newRange =  changedRange;
    }
    return newRange;

}