У меня проблема с легендой круговой диаграммы в базовой платформе (для 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 вместе с другим графиком (гистограммой), который работает отлично. Кроме того, я не заметил этой проблемы только с одной круговой диаграммой (но это не значит, что она не существует). Но, к сожалению, мне нужны две круговые диаграммы в одном представлении, близко друг к другу. И только с одной легендой, потому что они имеют одинаковые поля, только с разными значениями.
Я что-то не так делаю, или это может быть какая-то ошибка? Есть ли способ это исправить? К сожалению, замена легенды на какое-то изображение не является решением, потому что имена являются динамическими.