有没有人研究过如何手动将标签添加到Core-Plot(iPhone)图表中?

时间:2009-09-06 09:31:02

标签: iphone frameworks core-plot labels

我为我的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'

错误。

任何人都有解决方案吗?

非常感谢。

1 个答案:

答案 0 :(得分:3)

我相信has been addressed中的这个Core Plot mailing list。 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; 

EDIT(2010年1月18日):现在Core Plot iPhone测试应用程序中的一个示例出现在条形图选项卡下。