Coreplot:设置全局范围的长度不起作用

avs*_*avs 2 core-plot ios

首先,我有一个图表(Coreplot Linechart).我已经设置了图的defaultPlotspace的x范围和y范围.

- (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))];
}
Run Code Online (Sandbox Code Playgroud)

现在我的任务是根据用户交互显示沿x轴的图形的一部分(区域).为此,我正在更改plotspace的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));

}
Run Code Online (Sandbox Code Playgroud)

当我改变范围的位置并保持这样的长度时,图表显示适当的区域.也就是说,它滚动到数字提到的位置.

甚至当我改变长度的globalXRange的从更高较低值-例如,从5.0到3.0变化的长度-的图表中示出了相应的部分.也就是说,它在较大的图片中显示较小的区域.

但是当我将globalXRange的长度从更改时 - 例如,将长度3.0更改为5.0 - 图表的范围不会增加.

在设置了我使用NSLog检查的范围后,如果globalXRange的长度已经改变.令人惊讶的是,根据NSLog,长度已经改变,但在视觉上图表没有移动也没有改变其范围.

我无法解决问题.请帮我解决一下这个.提前致谢.

Eri*_*och 5

globalXRangeglobalYRange限制,该地块的空间可以滚动使用内置的用户交互功能放大的量.使用xRangeyRange来控制图的可见部分.