我的iPhone应用程序中的核心情节图很好地绘制。但是,有一件事我似乎无法弄明白。如何在视图加载后将图形滚动到其x轴的末尾,而不是从原点开始?我希望图形出现时x轴上的最后一个数据点可见。怎么样?
我看到了plotSpace:willDisplaceBy:委托方法,它与我需要的“接近”,但我需要能够告诉图形在其视图加载时将自身移位到x轴的末尾。我没有找到核心图的任何相关示例代码来执行此操作。
答案 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;
}