Разница в базовом графике CPTBarPlotFieldBarLocation и CPTBarPlotFieldBarTip? - PullRequest
2 голосов
/ 19 июля 2011

Я новичок в базовом сюжете, и мне интересно, какая разница на CPTBarPlotFieldBarLocation и CPTBarPlotFieldBarTip.Я смотрел на основной пример графика CPTTestApp_ipadViewController и видел, что оба перечисления поля вызываются при заполнении уловки методом numberForPlot, но я не понимаю разницы.

Спасибо за любую помощь

1 Ответ

4 голосов
/ 21 сентября 2011

Разница очень огромная.Если мы посмотрим на определение типа CPTBarPlotField в CPTBarPlot, то увидим, что в этом перечислении есть три значения:

  1. CPTBarPlotFieldBarLocation: Расположение бара на независимой оси координат.
  2. CPTBarPlotFieldBarTip: Значение вершины бара.
  3. 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 ....).

...