1

CPTAxisLabelingPolicyNoneとは異なるlabelingPolicyが文字列ラベルに見つからないのはなぜですか?

x.labelingPolicy = CPTAxisLabelingPolicyNone;

ここに画像の説明を入力してください

このGRIDLineStyleが必要ですが、テキストラベルを使用します。

x.labelingPolicy = CPTAxisLabelingPolicyFixedInterval

ここに画像の説明を入力してください

次のコードでxAxisLabelsを完成させます。

NSMutableArray *labels = [[NSMutableArray alloc] initWithCapacity:[labelsAxisX count]];
    int idx = 0;
    for (NSString *product in labelsAxisX)
    {
        CPTAxisLabel *label = [[CPTAxisLabel alloc] initWithText:product textStyle:x.labelTextStyle];
        label.tickLocation = CPTDecimalFromInt(idx);
        label.offset = 5.0f;
        [labels addObject:label];
        [label release];
        idx++;
    }

    x.axisLabels = [NSSet setWithArray:labels];
    [labels release];
4

1 に答える 1

1

ラベル付けポリシーでは、CPTAxisLabelingPolicyNoneラベルの作成に加えて、目盛りの位置(メジャーおよび/またはマイナー)を指定する必要があります。固定間隔のラベル付けポリシーを使用する場合は、数値の代わりにテキストラベルを返す軸のカスタム数値フォーマッターを作成できます。

プロットギャラリーサンプルアプリのラベリングポリシーデモを応用した例を次に示します。

NSMutableSet *tickLocations = [NSMutableSet set];
for ( NSUInteger loc = 0; loc < labelsAxisX.count; loc++ ) {
    [tickLocations addObject:[NSDecimalNumber numberWithUnsignedInteger:loc]];
}
axis.majorTickLocations = tickLocations;

マイナーティックの場所も同じように機能します。

于 2012-05-25T16:56:22.010 に答える