2015-09-17 3 views
2

Я пытаюсь изменить размер и изменить положение текстовой аннотации на графике, когда пользователь увеличивает и уменьшает масштаб, и я действительно не знаю, куда идти дальше.Изменение размера и изменение положения в области ядра при масштабировании

- (BOOL)plotSpace:(CPTPlotSpace *)space shouldScaleBy:(CGFloat)interactionScale aboutPoint:(CGPoint)interactionPoint { 
     NSArray *annotations = space.graph.plotAreaFrame.plotArea.annotations; 
     for (id annotation in annotations) { 
      if ([annotation isKindOfClass:[CPTPlotSpaceAnnotation class]]) { 
       CPTPlotSpaceAnnotation *textAnnotation = (CPTPlotSpaceAnnotation *)annotation; 
       if ([textAnnotation.contentLayer isKindOfClass:[CPTTextLayer class]]) { 
        // I want to resize font and reposition the annotation when the user zooms 
       } 
      } 
     } 
     return YES; 
    } 

ответ

0

Вы уже нашли текстовый слой, который рисует текст аннотации. Измените текстовый слой textStyle, чтобы отрегулировать размер шрифта.

Аннотации будут следовать за его anchorPlotPoint и displacement при изменении площади участка. Вы можете обновить эти свойства, если это необходимо, чтобы переместить аннотацию относительно своего хоста.

+0

Что вы подразумеваете, аннотация будет следовать за его anchorPlotPoint и смещением по мере изменения пространства сюжета. Что я должен обновить этими свойствами? Например, я хочу увеличить график, а взаимодействиеScale -> 1, как я должен обновить anchorPlotPoint и смещение текстового слоя. Спасибо – Gnoob

+0

Мое мнение заключалось в том, что вам не придется менять их вообще. Вся точка аннотации пространственного пространства заключается в том, что она привязана к определенному месту в координатах данных. Он будет перемещаться по сюжету, поскольку пользователь масштабирует и масштабирует сюжет. «AnchorPlotPoint» - это фиксированная координата данных, а «смещение» - смещение пикселя (точки) между «anchorPlotPoint» и «contentAnchor» 'contentLayer'. –

Смежные вопросы