我正在尝试更改为核心情节的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;
}
答案 0 :(得分:1)
看起来你总是希望得到相同数量的刻度线,无论绘图范围的长度如何。如果是这样,请使用不同的轴标签策略而不是委托。 CPTAxisLabelingPolicyAutomatic
政策会在“好”数字上找到刻度线,但不一定是绘图范围的末尾。 CPTAxisLabelingPolicyEqualDivisions
将从绘图范围的一端开始,并从另一端继续等间距刻度。这两个标签政策都使用preferredNumberOfMajorTicks
来控制要绘制的刻度线数。