Core plot CPTBarPlot:在更改条填充颜色后,是否需要调用reloadData?
我有一个iOS应用程序,它显示一个Core plot CPTBarPlot:在更改条填充颜色后,是否需要调用reloadData?,core-plot,Core Plot,我有一个iOS应用程序,它显示一个CPTBarPlot。我的条形图通过更改触摸条的颜色来响应触摸。我通过跟踪barWasSelectedAtRecordIndex中最后一个选定条的索引来实现这一点,然后在barFillForBarPlot中设置选定条的颜色,使其成为不同于其他条的颜色。这很好,但似乎每次选定的栏更改时我都必须调用reloadData,以使新的填充颜色生效。这需要太长时间,因为数据太多,使应用程序感觉迟钝 仅仅为了改变一个条的颜色而重新加载所有数据似乎是浪费,所以我希望有更好的方法
CPTBarPlot
。我的条形图通过更改触摸条的颜色来响应触摸。我通过跟踪barWasSelectedAtRecordIndex
中最后一个选定条的索引来实现这一点,然后在barFillForBarPlot
中设置选定条的颜色,使其成为不同于其他条的颜色。这很好,但似乎每次选定的栏更改时我都必须调用reloadData,以使新的填充颜色生效。这需要太长时间,因为数据太多,使应用程序感觉迟钝
仅仅为了改变一个条的颜色而重新加载所有数据似乎是浪费,所以我希望有更好的方法,或者我只是在做一些愚蠢的事情
以下是相关代码的简化版本:
-(void)barPlot:(CPTBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)idx
{
self.selectedIndex = idx
// Do I have to do this??
[self reloadData];
}
-(CPTFill *)barFillForBarPlot:(CPTBarPlot *)barPlot recordIndex:(NSUInteger)index
{
CPTFill *barFill = nil;
if (index == self.selectedIndex)
{
barFill = [CPTFill fillWithColor:redColor];
}
else
{
barFill = [CPTFill fillWithColor:blueColor];
}
return barFill;
}
对。绘图缓存从数据源加载的所有内容,包括条填充。您需要调用
-reloadData
,告诉它可以加载新信息。这正是我所担心的。谢谢