我的CPTScatterPlot
允许缩放以放大以查看更详细的数据,以及一些可以更改的参数。每当参数改变时,我都会重新计算数据点,然后是reloadData
。但是,这再次显示了整个数据范围,而不是保持放大的范围。
编辑:到目前为止我尝试过:
-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate
{
CPTPlotRange *updatedRange = nil;
switch ( coordinate )
{
case CPTCoordinateX:
if ([newRange isEqualToRange: ((CPTXYPlotSpace *)space).globalXRange]) {
updatedRange = ((CPTXYPlotSpace *)space).xRange;
}
else {
updatedRange = newRange;
}
break;
case CPTCoordinateY:
case CPTCoordinateZ:
case CPTCoordinateNone:
break;
}
return updatedRange;
}
我有一个预感我需要在这个委托方法中做到这一点,但我还没有弄清楚如何。
有没有办法在调用reloadData
时保持放大范围?
编辑2 :通过添加dataIsLoaded
标志解决,这样我最初只设置xRange
,但不会在每次重新计算时设置delegate
。上面的{{1}}方法与问题无关。