0

iPhone アプリケーション用に単純な棒グラフを作成しましたが、x 軸のラベルを手動で追加したいと考えています。誰かがこれを行う方法を考え出しましたか?

CPXYAxisSet.xAxis.axisLabels プロパティを見つけましたが、NSSet を作成して次のように割り当てます。

axisSet.xAxis.axisLabelingPolicy = CPAxisLabelingPolicyNone;
NSSet *labels = [[NSSet alloc] initWithObjects:@"year 1", @"year 2" @"year 3", nil];
axisSet.xAxis.axisLabels = labels;

私は得る:

*** Terminating app due to uncaught exception 'CALayerInvalid', reason: 'expecting model layer not copy: year 1'

エラー。

誰にも解決策がありますか?

どうもありがとう。

4

1 に答える 1

3

これはCore Plot メーリング リストで対処されていると思います。axisLabels プロパティは、NSStrings ではなく、一連の CPAxisLabel オブジェクト (CALayer の子孫) を受け取るため、上記の例外が発生します。

カスタム ラベルごとに CPAxisLabel を作成するには、次のようなコードを使用します。

CPAxisLabel *newLabel = [[CPAxisLabel alloc] initWithText: customText]; 
newLabel.tickLocation = [tickLocation decimalValue]; 
newLabel.textStyle = x.axisLabelTextStyle; 
newLabel.offset = x.axisLabelOffset + x.majorTickLength; 

編集 (2010 年 1 月 18 日): この例は、棒グラフ タブの下の Core Plot iPhone テスト アプリケーションに表示されます。

于 2009-09-06T15:48:54.717 に答える