2011-10-01 69 views
2

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

我看到了plotSpace:willDisplaceBy:delegate方法,它与我需要的“接近”,但我需要能够告诉图形在其视图加载时将其本身置换到其x轴的末端。我还没有找到任何相关的示例代码为核心阴谋做到这一点。

回答

7

您需要设置的情节空间的xRange使最后一点是可见的。如果你知道结局的价值和你想成为可见的范围内的长度,你可以做这样的事情:

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

的例子假设所需的长度是积极的,你的价值观是双打。如果需要,您当然可以使用NSDecimal值进行计算。

+0

完美!这正是我所期待的。愚蠢的我没有看到这一点。万分感谢! –

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; 

} 
+0

这是一个委托方法。我正在寻找一种方法来告诉图形在第一次在屏幕上绘制时在x轴上显示最后一个项目。方法调用需要在我的控制器类的viewDidLoad()方法中,或者从那里调用。不管怎么说,多谢拉。 –

+0

尝试这些线时,您的图形或图形CPPlotRange * xRange = barPlotSpace.xRange; [xRange expandRangeByFactor:CPDecimalFromDouble(1.2)]; – Ron

+0

没有。没有工作。 –