Основная легенда сюжета не появляется каждый раз - PullRequest
0 голосов
/ 17 сентября 2011

У меня проблема с легендой круговой диаграммы в базовой платформе (для iOS). Я добавляю два графика в объект графика (CPTXYGraph):

CPTPieChart *piePlot = [[CPTPieChart alloc] init];
piePlot.dataSource = self;
piePlot.pieRadius = 60.0;
piePlot.identifier = @"After";
piePlot.startAngle = M_PI_4;
piePlot.sliceDirection = CPTPieDirectionCounterClockwise;
piePlot.centerAnchor = CGPointMake(0.7, 0.67);
piePlot.borderLineStyle = [CPTLineStyle lineStyle];
piePlot.delegate = self;
[pieChart addPlot:piePlot];
[piePlot release];

CPTPieChart *piePlotSecond = [[CPTPieChart alloc] init];
piePlotSecond.dataSource = self;
piePlotSecond.pieRadius = 60.0;
piePlotSecond.identifier = @"Before";
piePlotSecond.startAngle = M_PI_4;
piePlotSecond.sliceDirection = CPTPieDirectionCounterClockwise;
piePlotSecond.centerAnchor = CGPointMake(0.27, 0.67);
piePlotSecond.borderLineStyle = [CPTLineStyle lineStyle];
piePlotSecond.delegate = self;
[pieChart addPlot:piePlotSecond];
[piePlotSecond release];

Пока все отлично, и вот легенда:

CPTMutableTextStyle *legendTextStyle = [CPTTextStyle textStyle];
legendTextStyle.fontSize = 10.0f;
legendTextStyle.color = [CPTColor whiteColor];
CPTLegend *theLegend = [CPTLegend legendWithPlots:[NSArray arrayWithObject:[pieChart plotAtIndex:0]]];
theLegend.numberOfColumns = 2;
theLegend.textStyle = legendTextStyle;
theLegend.fill = [CPTFill fillWithColor:[CPTColor blackColor]];
theLegend.borderLineStyle = [CPTLineStyle lineStyle];
theLegend.cornerRadius = 5.0;

pieChart.legend = theLegend;

pieChart.legendAnchor = CPTRectAnchorRight;
pieChart.legendDisplacement = CGPointMake(-33.0, -90.0);

Это просто не появляется каждый раз. Значение: на симуляторе это почти идеально, но на устройстве оно появляется только каждый 3-й или 4-й раз. Также мне выдается следующее предупреждающее сообщение:

..- [<< границы: {{0, 0}, {8.58993e + 09, 125}}> для участков ( "<границы: {{0, 0}, {320, 367}}>" )> display]: игнорирование размера фиктивного слоя (8589934592.000000, 125.000000)

Представление размещения графов находится в объекте uiscrollview вместе с другим графиком (гистограммой), который работает отлично. Кроме того, я не заметил этой проблемы только с одной круговой диаграммой (но это не значит, что она не существует). Но, к сожалению, мне нужны две круговые диаграммы в одном представлении, близко друг к другу. И только с одной легендой, потому что они имеют одинаковые поля, только с разными значениями.

Я что-то не так делаю, или это может быть какая-то ошибка? Есть ли способ это исправить? К сожалению, замена легенды на какое-то изображение не является решением, потому что имена являются динамическими.

1 Ответ

0 голосов
/ 18 сентября 2011

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

Я играю с графиком уже 15 минут, и он работает.

Я думаю, это была ошибка в версии 0.4.

...