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 属性接受一组 CPAxisLabel 对象(CALayer 的后代),而不是 NSStrings,这就是您得到上述异常的原因。

要为每个自定义标签创建 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 回答