在放大Core Plot时更改majorIntervalScale

时间:2013-01-19 17:13:06

标签: ios core-plot

我正在尝试更改为核心情节的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 个答案:

答案 0 :(得分:1)

看起来你总是希望得到相同数量的刻度线,无论绘图范围的长度如何。如果是这样,请使用不同的轴标签策略而不是委托。 CPTAxisLabelingPolicyAutomatic政策会在“好”数字上找到刻度线,但不一定是绘图范围的末尾。 CPTAxisLabelingPolicyEqualDivisions将从绘图范围的一端开始,并从另一端继续等间距刻度。这两个标签政策都使用preferredNumberOfMajorTicks来控制要绘制的刻度线数。