我正在使用Core-Plot库在iPhone中绘制条形图。我正在使用CPTTestApp-iPhone
进行培训。在我的项目中,条形似乎非常好,从示例项目看起来像。但是,我不需要给出值来绘制条形图。然后,在我的实际项目中,我需要动态更改条形值。我怎样才能做到这一点?请帮我找出解决方案。提前致谢。在示例数据源代码下面,
#pragma mark -
#pragma mark Plot Data Source Methods
-(NSUInteger)numberOfRecordsForPlot:(CPTPlot *)plot
{
return 10;
}
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
NSDecimalNumber *num = nil;
if ( [plot isKindOfClass:[CPTBarPlot class]] )
{
switch ( fieldEnum )
{
case CPTBarPlotFieldBarLocation:
num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:index];
break;
case CPTBarPlotFieldBarTip:
num = (NSDecimalNumber *)[NSDecimalNumber numberWithUnsignedInteger:(index+1)*(index+1)];
if ( [plot.identifier isEqual:@"Bar Plot 2"] )
num = [num decimalNumberBySubtracting:[NSDecimalNumber decimalNumberWithString:@"10"]];//10
break;
}
}
return num;
}
-(CPTFill *) barFillForBarPlot:(CPTBarPlot *)barPlot recordIndex:(NSNumber *)index;
{
return nil;
}
如何在coreplot iPhone中增加条形长度?感谢。
答案 0 :(得分:3)
Core Plot图将在首次显示时从数据源请求其数据。您可以通过多种方式强制它加载新数据:
-reloadData
以重新加载所有图表。-reloadData
以重新加载该地块的所有数据。-reloadDataInIndexRange:
以重新加载一系列数据索引而不更改数据点的总数。-insertDataAtIndex:numberOfRecords:
以在给定索引处插入新数据。任何较高指数的数据都将被移动以腾出空间。只会从数据源请求新数据。您还可以使用-deleteDataInIndexRange:
方法从绘图中删除数据,而无需重新加载任何内容。
顾名思义,-numberOfRecordsForPlot:
方法告诉图表将绘制多少数据点。将调用-numberForPlot:field:recordIndex:
方法来加载实际数据值。它会针对字段(位置和提示)和数据索引的每个组合进行调用。