метки данных не отображаются до изменения диапазона пространства графика (перетаскивание на графике)

#ipad #core-plot

#iPad #core-plot

Вопрос:

я реализовал приложение для iPad, которое использует точечную диаграмму (библиотека: coreplot 0.9).
Сами данные графика отображаются правильно, но метки для точек графика изначально не отображаются.
Как только я перетаскиваю пространство графика, метки отображаются так, как ожидалось.
Когда я динамически добавляю второй график к графику (для этого нажмите специальную кнопку), отображаются метки первого графика, метки второго графика не отображаются.

После долгих попыток заставить это работать и большого количества веб-поиска я довольно сильно застрял здесь и был бы очень признателен за любые идеи по этой теме.
В приведенном ниже примере кода я создаю свое собственное графическое пространство. Проблема такая же для графиков в пространстве графика по умолчанию.

 …

graph = [[CPTXYGraph alloc] initWithFrame:CGRectZero];
myPlotView.hostedGraph = graph;
[graph release];

…

myPlot = [[CPTScatterPlot alloc] init];

CPTMutableLineStyle *lineStyle = [[myPlot.dataLineStyle mutableCopy] autorelease];
lineStyle.lineWidth = 3.f;
lineStyle.lineColor = [CPTColor greenColor];
myPlot.dataLineStyle = lineStyle;
myPlot.dataSource = self;
myPlot.plotSymbol = [CPTPlotSymbol ellipsePlotSymbol];
[myGraph addPlot:myPlot];
[myPlot release];

CPTMutableTextStyle *whiteTextStyle = [CPTMutableTextStyle textStyle];
whiteTextStyle.color = [CPTColor whiteColor];
myPlot.labelTextStyle = whiteTextStyle;
myPlot.labelOffset = -10.0;

myOwnPlotSpace = [[CPTXYPlotSpace alloc]init];
[myGraph addPlotSpace:myOwnPlotSpace];
myPlot.plotSpace = myOwnPlotSpace;
[myOwnPlotSpace release];
myOwnPlotSpace.delegate = self;
myOwnPlotSpace.allowsUserInteraction = YES;
myOwnPlotSpace.xRange = ((CPTXYPlotSpace *)(myGraph.defaultPlotSpace)).xRange;            

…
  

Эти скриншоты показывают ситуацию (поскольку я новичок в Stack Overflow, мне пока не разрешено публиковать изображения):

Начальное отображение графика (метки не показаны):
http://gallery.me.com/timoseeberger#100038/screenshot_graph_beforeamp;bgcolor=black

отображение графика после перетаскивания (метки отображаются сразу):
http://gallery.me.com/timoseeberger#100038/screenshot_graph_afteramp;bgcolor=black

Комментарии:

1. Я попробовал ваш код, и он отлично работал в одном из примеров проектов. Можете ли вы публиковать изображения до и после?

2. Привет, Эрик, большое тебе спасибо за помощь с этой темой. Я добавил ссылки на два скриншота, которые показывают ситуацию. Я не мог опубликовать скриншоты напрямую, потому что я новичок в Stack Overflow и мне еще не разрешили это делать.

Ответ №1:

Похоже, ваша проблема связана с известной проблемой основного графика. Подробности и уведомление об исправлении смотрите в отслеживателе проблем с основным графиком.

Комментарии:

1. Спасибо за ссылку. Я буду следить за этой проблемой там.

Ответ №2:

У меня возникла несколько похожая проблема (сначала метки отображаются в неправильном месте, затем перемещаются в правильное местоположение), и я обнаружил, что в моем случае настройка collapsesLayers = NO в представлении хоста решает проблему.

Комментарии:

1. Вы имеете в виду, collapsesLayers = ДА, верно? Я попробовал это в своем коде, в результате чего метки фактически отображаются изначально, что очень приятно. Однако после того, как я удаляю график с графика, он не исчезает, пока я немного не перетащу график.