我从一开始就一直在使用核心情节,我发现它非常灵活且功能范围广,感谢这样一个让开发人员生活更轻松的精彩图书馆。
现在我遇到的问题是图表的数据标签。默认情况下,为每个数据点显示数据标签,我将其更改为仅显示第三个点(我的图表只有4个点,它们类似于(0,0),(2,34),(38,34),( 40,0))。 (参见附件)。所有四个点都有相同的数据标签,所以只显示第三个点,它正在显示,但我想让数据标签在第二个和第三个点之间。我已经尝试过添加layer.paddingRight / paddingLeft等但不能正常工作,即使是layer.position也无法正常工作。
对于我来说,对于数据标签的位置(x,y)看起来如何被核心图忽略,它总是围绕着这一点。如果需要,我们将非常感谢您的帮助。
另请注意,我没有使用CPTPlotSpaceAnnotation作为我用于悬停信息的内容。下面是dataLabelForPlot的代码:recordIndex:。将x和y从0 0更改为任何值都不起作用。
CPTLayer *layer = [[CPTLayer alloc] initWithFrame:CGRectMake(0,0, 300, 25)];
CPTTextLayer * newLayer = [[CPTTextLayer alloc] initWithText:textToShow style:whiteText] ;
[layer addSublayer:newLayer];
return layer;
答案 0 :(得分:0)
如果您希望标签位于两个数据点之间,则绘图空间注释是正确的解决方案。您可以根据需要在图表上添加任意数量的注释。
如果您希望数据标签始终相对于其中一个数据点显示,请使用图表labelOffset
进行定位。
也在Core Plot issue #239上回答。