1
我有一個iOS應用程序,顯示CPTBarPlot
。我的酒吧情節通過更改觸摸酒吧的顏色來響應觸摸。我通過跟蹤barWasSelectedAtRecordIndex
中最後一個選定欄的索引來完成此操作,然後將barFillForBarPlot
中選定欄的顏色設置爲與其他顏色不同。這工作正常,但似乎我必須調用reloadData每次所選的欄更改爲了使新的填充顏色生效。這需要很長的時間,因爲有大量的數據,使應用程序感覺呆滯。CPTBarPlot:更改欄填充顏色後是否需要調用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;
}
這就是我所害怕的。謝謝。 –