2014-11-12 2 views
0

그래프의 값을 표시하는 끝에 항상 첨부 된 주석이있는 그래프보기를 만들려고합니다. 슬라이더를 움직이면 실시간으로 업데이트되고 그래프 값이 변경되면 주석 텍스트도 변경됩니다.코어 플롯 : CPTPlot에서 CPTBarPlot 얻기

나는 간단한 코드를 조합하여 잘 작동시킨다.

- (void)barPlot:(CPTBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)idx; 

이 나를 CPTBarPlot 잡아 그에 대해 확인 할 수 그러나이 막대를 눌러로 그 키를 누릅니다 처리하고있었습니다. 그래프가로드되어 거기에 무한정 남아있을 때 주석이 표시되기를 바랍니다. 따라서 위의 방법을 사용하는 것은 실현 가능하지 않습니다.

여기 내 numberForPlot 메서드이며 주석을 업데이트하는 것을 처리하고 싶은 메서드를 호출하고 있습니다.

- (의 NSNumber *) numberForPlot : (CPTPlot *) 플롯 필드 : (NSUInteger) fieldEnum recordIndex : (NSUInteger) 내 방법 addAnnotationToBar: value: atIndex:를 호출하고이 코드에서는 인덱스 {

double ageNew = self.sliderOne.value - [self.budgetObject.larcNum doubleValue]; 

self.budgeObject = [self.budgetImpactFormula calculateBudgetImpactData:ageNew andOrganisation:self.organisationObject]; 

BudgetGraphObject *graphObject = [self getGraphScale]; 

if ((fieldEnum == CPTBarPlotFieldBarTip) && (index < 2)) { 
    if ([plot.identifier isEqual:@"UIPCurrent"]) { 

     return graphObject.uipCur; 
    } 
    else if ([plot.identifier isEqual:@"UIPProjected"]) { 

     [self addAnnotationToBar:plot value:[graphObject.uipProj doubleValue] atIndex:index]; 
     return graphObject.uipProj; 
    } 

. 그러나 응용 프로그램이 추락했고 CPTlot이 아니라 CPTBarPlot을 전달하고 있었기 때문에 실현되었습니다. 앱을 중단시키는 행은 다음과 같습니다. [plot.graph.plotAreaFrame.plotArea addAnnotation:self.uipProjectedAnnotation];

추가 조사가 끝난 후이 부분이 특수 효과의 업데이트를 처리하는 가장 좋은 장소 인 것으로 보입니다. CPTPlot에서 CPTBarPlots를 확보 할 수 있습니까?

나는 다음과 같은 찾기 위해 디버거를 사용했다 :

enter image description here

나는, 그러나 수없는이 배열에 액세스 할 수 있습니다.

CPTPlot 내에서 CPTBarPlots를 유지하는 방법에 대한 도움을 주시면 감사하겠습니다.

감사합니다.

답변

0

데이터 소스에서 그렇게하지 마십시오. 그래프를 설정할 때 플롯에 주석을 추가하십시오. 플롯 데이터가 변경되면 나중에 업데이트 할 수 있습니다.

+0

안녕하세요, 에릭, 응답 해 주셔서 감사합니다. 내 createGraph 메서드 내에서 그들을 추가 할 것입니다. 데이터 변경 사항을 보는 가장 좋은 방법은 무엇입니까? 이 그래프는 슬라이더와 함께 작동하므로 지속적으로 업데이트됩니다. 그래프가 변경되면 주석을 업데이트해야합니다. – pls