Тик-тэги Core Core iPhone не отображаются - PullRequest
2 голосов
/ 18 ноября 2009

Я прошел здесь урок: http://www.switchonthecode.com/tutorials/using-core-plot-in-an-iphone-application, и могу показать график, но я не вижу отметок или меток на моем наборе осей. Есть что-то простое, что я пропускаю? Ниже приведен мой код для создания графа, и я также реализовал функции делегата. Я вижу ось и график, но не метки или метки оси.

Спасибо за любую помощь, которую вы можете оказать.

- (void) showGraph {

  graph = [[CPXYGraph alloc] initWithFrame: CGRectMake(0,0, 320, 320)];

  CPLayerHostingView *graphView = [[CPLayerHostingView alloc] initWithFrame:CGRectMake(0,0, 320, 320)];
  graphView.backgroundColor = [UIColor blueColor];

  AppDelegate *t = (AppDelegate *)[[UIApplication sharedApplication] delegate];
  [t.mapVC.view addSubview:graphView];

  graphView.hostedLayer = graph;
  graph.paddingLeft = 20.0;
  graph.paddingTop = 20.0;
  graph.paddingRight = 20.0;
  graph.paddingBottom = 20.0;

  float minElevation = 0;
  float maxElevation = 10;
  float minTime = 0;
  float maxTime = 5;

  CPXYPlotSpace *plotSpace = (CPXYPlotSpace *)graph.defaultPlotSpace;
  plotSpace.xRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minTime)
                                                 length:CPDecimalFromFloat(maxTime)];
  plotSpace.yRange = [CPPlotRange plotRangeWithLocation:CPDecimalFromFloat(minElevation)
                                                 length:CPDecimalFromFloat(maxElevation)];

  CPXYAxisSet *axisSet = (CPXYAxisSet *)graph.axisSet;

  CPLineStyle *blackStyle = [CPLineStyle lineStyle];
  blackStyle.lineColor = [CPColor blackColor];
  blackStyle.lineWidth = 5.0f;
  CPLineStyle *whiteStyle = [CPLineStyle lineStyle];
  whiteStyle.lineColor = [CPColor whiteColor];
  whiteStyle.lineWidth = 5.0f;

  axisSet.xAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"]decimalValue];

  axisSet.xAxis.minorTicksPerInterval = 4;
  axisSet.xAxis.majorTickLineStyle = whiteStyle;
  axisSet.xAxis.minorTickLineStyle = whiteStyle;
  axisSet.xAxis.axisLineStyle = blackStyle;
  axisSet.xAxis.minorTickLength = 5.0f;
  axisSet.xAxis.majorTickLength = 10.0f;
  axisSet.xAxis.labelOffset = 3.0f;

  axisSet.yAxis.majorIntervalLength = [[NSDecimalNumber decimalNumberWithString:@"5"]decimalValue];
  axisSet.yAxis.minorTicksPerInterval = 4;
  axisSet.yAxis.majorTickLineStyle = blackStyle;
  axisSet.yAxis.minorTickLineStyle = blackStyle;
  axisSet.yAxis.axisLineStyle = whiteStyle;
  axisSet.yAxis.minorTickLength = 5.0f;
  axisSet.yAxis.majorTickLength = 10.0f;
  axisSet.yAxis.labelOffset = 3.0f;

  CPScatterPlot *xSquaredPlot = [[[CPScatterPlot alloc]
                                  initWithFrame:graph.bounds] autorelease];
  xSquaredPlot.identifier = @"X Squared Plot";
  xSquaredPlot.dataLineStyle.lineWidth = 2.0f;
  xSquaredPlot.dataLineStyle.lineColor = [CPColor greenColor];
  xSquaredPlot.dataSource = self;
  [graph addPlot:xSquaredPlot];

  CPPlotSymbol *greenCirclePlotSymbol = [CPPlotSymbol ellipsePlotSymbol];
  greenCirclePlotSymbol.fill = [CPFill fillWithColor:[CPColor greenColor]];
  greenCirclePlotSymbol.size = CGSizeMake(2.0, 2.0);

  xSquaredPlot.plotSymbol = greenCirclePlotSymbol;  
}

1 Ответ

6 голосов
/ 18 ноября 2009

Вам нужно немного пространства вокруг осей. Базовый график еще не сделал этого автоматически.

Попробуйте добавить некоторые отступы к graph.plotArea.plotGroup и graph.plotArea.axisSet. См. Гистограмму в тестовом приложении iPhone для примера.

...