2011-10-01 68 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

沒有。沒有工作。 –