0

ズーム中にコアプロットの 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;
}
4

1 に答える 1

1

プロット範囲の長さに関係なく、常に同じ数の目盛りが必要なようです。その場合は、デリゲートの代わりに別の軸のラベル付けポリシーを使用してください。このCPTAxisLabelingPolicyAutomaticポリシーは、「適切な」数字の目盛りを見つけますが、必ずしもプロット範囲の終わりではありません。CPTAxisLabelingPolicyEqualDivisionsは、プロット範囲の一端から他端まで等間隔の目盛りを配置します。これらのラベル付けポリシーは両方とも、 を使用して、preferredNumberOfMajorTicks描画する目盛りの数を制御します。

于 2013-01-20T01:20:36.783 に答える