Разница очень огромная.Если мы посмотрим на определение типа CPTBarPlotField
в CPTBarPlot
, то увидим, что в этом перечислении есть три значения:
CPTBarPlotFieldBarLocation
: Расположение бара на независимой оси координат. CPTBarPlotFieldBarTip
: Значение вершины бара. CPTBarPlotFieldBarBase
: Основание бара (используется только, если barBasesVary - YES).
Вы можете спросить - где я могу использовать эти значения?Хорошо, вы должны использовать эти константы в методе -(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
.В этом методе вы должны возвращать значения этих свойств для каждого отдельного бара.Например,
-(NSNumber *)numberForPlot:(CPTPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index
{
int plotIndex = [(NSNumber *)plot.identifier intValue];
return [[[datas objectAtIndex:plotIndex] objectAtIndex:index] valueForKey:(fieldEnum == CPTBarPlotFieldBarLocation ? @"x" : @"y")];
}
В моем примере у меня есть словарь, который содержит значения для оси x (расположение столбцов) и y (значения столбцов).
Хочу отметить, что вам не следует устанавливать свойство plotRange
вашего CPTBarPlot *plot
, или CorePlot
будет автоматически устанавливать местоположение ваших баров (в позиции 0,1,2,3,4 ....).