2013-01-19 2 views
0

축소 할 때 축에 표시되는 항목이 줄어들고 확대 할 때 표시되는 항목이 많아 지도록 확대하는 동안 코어 플롯의 majorIntervalScale로 변경하려고합니다. 작동하지 않을 수 있습니다. 아무도 도와 줄 수 있니? 지금까지 제가 가지고있는 코드는 다음과 같습니다. 감사합니다.확대 할 때 majorIntervalScale을 변경합니다. 코어 플롯

-(BOOL)plotSpace:(CPTPlotSpace *)space shouldScaleBy:(CGFloat)interactionScale aboutPoint:(CGPoint)interactionPoint 
{ 
    return YES; 
} 

-(CPTPlotRange *)plotSpace:(CPTPlotSpace *)space willChangePlotRangeTo:(CPTPlotRange *)newRange forCoordinate:(CPTCoordinate)coordinate 
{ 
    self.graphScaleX = self.graphScaleX*newRange.lengthDouble; 
    self.graphScaleY = self.graphScaleY*newRange.lengthDouble; 

    CPTXYAxisSet *axisSet = (CPTXYAxisSet *)self.graph.axisSet; 
    CPTXYAxis *x   = axisSet.xAxis; 

    CPTXYAxis *y   = axisSet.yAxis; 

    x.majorIntervalLength=CPTDecimalFromFloat(self.graphScaleX); 
    y.majorIntervalLength=CPTDecimalFromFloat(self.graphScaleY); 

    return newRange; 
} 

답변

1

플롯 범위의 길이에 관계없이 항상 동일한 눈금 수를 원한다고 보입니다. 그렇다면 대리인 대신 다른 축 레이블 지정 정책을 사용하십시오. CPTAxisLabelingPolicyAutomatic 정책은 "좋은"숫자에 눈금을 표시하지만 반드시 플롯 범위의 끝은 아닙니다. CPTAxisLabelingPolicyEqualDivisions은 플롯 범위의 한쪽 끝에서 시작하여 다른 쪽 끝까지 똑같은 간격의 틱을 배치합니다. 이러한 레이블 지정 정책은 모두 preferredNumberOfMajorTicks을 사용하여 그리는 눈금 수를 제어합니다.

+0

내가 찾고있는 것을 정확히! 고맙습니다! – ChrisBorg