我为我的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'
错误。
任何人都有解决方案吗?
非常感谢。
答案 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测试应用程序中的一个示例出现在条形图选项卡下。