首先,我有一個圖形(Coreplot線形圖)。我已經設置了圖的defaultPlotspace的x範圍和y範圍。Coreplot:設置全局範圍的長度不起作用
- (void) setUpXRangeForPlotspace:(CPTXYPlotSpace *) plotSpace {
int rangeLength = [self xRangeLength];
plotSpace.xRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(- 0.5f) length:CPTDecimalFromFloat(rangeLength + 1.0)];
}
- (void) setUpYRangeForPlotspace:(CPTXYPlotSpace *) plotSpace {
float maxValue = [self maximumYValue];
// length = maxvalue + (10% of maxvalue);
plotSpace.yRange = [CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(0.0f) length:CPTDecimalFromFloat(maxValue + (maxValue/10.0))];
}
現在我的任務是根據用戶交互顯示沿x軸的圖形的一部分(區域)。爲此,我正在改變繪圖區域的globalXRange。
我帶了兩個文本框,從中獲取位置和長度。 btnAction:按下按鈕時會觸發該方法。
- (void) btnAction:(id) sender {
float txt1fl = [txt1.text floatValue];
float txt2fl = [txt2.text floatValue];
NSLog(@"txt1fl : %f, txt2fl : %f",txt1fl,txt2fl);
CPTXYPlotSpace *plotSpace = (CPTXYPlotSpace *)graph.defaultPlotSpace;
[plotSpace setGlobalXRange:[CPTPlotRange plotRangeWithLocation:CPTDecimalFromFloat(txt1fl) length:(CPTDecimalFromFloat(txt2fl))]];
[plotSpace setGlobalYRange:plotSpace.globalYRange];
NSLog(@"Graph Global x:%f length:%f",CPTDecimalFloatValue(plotSpace.globalXRange.location),CPTDecimalFloatValue(plotSpace.globalXRange.length));
}
當我改變的範圍中的位置和離開長度那樣,該圖表是顯示適當的區域。也就是說,它正在滾動到該號碼所提及的位置。
甚至當我從一個更高改變長度的globalXRange到一個下值 - 例如,從5.0到3.0變化的長度 - 的圖表中示出了相應的部分。也就是說,它在較大的圖片中顯示了一個較小的區域。
但是,當我改變globalXRange的長度從下到更高 - 例如改變長度3.0至5.0 - 圖形的範圍沒有增大。
設置我使用NSLog檢查的範圍後,如果globalXRange的長度已更改或不。令人驚訝的是,根據NSLog,長度已經發生了變化,但是從視覺上看,圖表並沒有移動也沒有改變其範圍。
我無法制定出解決方案。請幫我解決一下這個。提前致謝。
謝謝。解決了這個問題。而不是改變globalXRange,現在我正在改變圖區的xRange。 – avs