通过coreplot在折线图中添加绘图符号到用户触摸的点

时间:2012-02-08 11:45:44

标签: iphone ios core-plot

我必须添加一个绘图符号,并在用户选择的点显示x和y坐标值。并且通过在方法

中添加CPTPlotSpaceAnnotation来实现该任务  
-(void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index 

并在方法中选择的索引以外的索引处返回nil值,

 -(CPTPlotSymbol *)symbolForScatterPlot:(GraphScatterPlot *)plot recordIndex:(NSUInteger)index 

仅显示一个地块。

为了只显示一个图,我必须为线上的每个用户触摸重新加载图形。但是对于大型数据集来说,这是一个繁琐的过程。因此,每次触摸后UI都会停留一段时间。我怎么能避免这个?

1 个答案:

答案 0 :(得分:3)

不使用主散点图上的绘图符号,而是使用第二个散点图。它只需要一个数据点 - 您想要标记的数据点。当您想要更新符号的位置时,仅在第二个图上调用-reloadData(不在图表上)。从-numberOfRecordsForPlot:返回零(0)以删除绘图符号。如果以这种方式执行,您也不需要-symbolForScatterPlot:recordIndex:数据源方法。只需将主图上的plotSymbol设置为nil(默认值),然后将其设置为第二个图上的所需标记。