Я пытаюсь создать график с текстом и изображением в качестве меток данных для каждой точки. Код, который я использую, выглядит так:
//Point symbol
NSInteger symbolIndex = interval.symbolIndex;
UIImage *img = [Common getPointSymbol:symbolIndex];
CGRect imageRect = CGRectMake(0, 0 , 60, 50);
CPTBorderedLayer * imageLayer = [[CPTBorderedLayer alloc] initWithFrame:imageRect];
imageLayer.fill = [CPTFill fillWithImage:[CPTImage imageWithCGImage:[img CGImage] scale:img.scale]];
//Point text
CPTMutableTextStyle *dataLabelTextStyle = [CPTMutableTextStyle textStyle];
dataLabelTextStyle.color = [CPTColor blackColor];
dataLabelTextStyle.fontSize = 12.0f;
dataLabelTextStyle.fontName = @"Helvetica";
CPTTextLayer *textLayer = [[CPTTextLayer alloc] initWithText:point.title style:dataLabelTextStyle];
[imageLayer addSublayer:textLayer];
return imageLayer;
Это хорошо работает для точек данных, которые изначально видны на графике, но для точек, которые находятся за пределами начальной области графика, рисуются только изображения символов. Если уменьшить масштаб и принудительно перерисовать график, снова появятся оба слоя. Та же проблема возникает, если изменить порядок слоев на противоположный, а затем отрисовывается только текстовый слой. По сути, кажется, что подслои не отображаются, если они начинаются за пределами графика.
Это основная сюжетная ошибка? Можно ли объединить слои в один, чтобы смягчить эту проблему?
Благодарен за помощь!