2013-11-03 48 views
0

我正在尝试使用核心绘图和绑定来设置饼图。我可以得到图表使用CPTPieChartBindingPieSliceWidthValues如何使用绑定配置核心绘图数据标签

正确显示
[pieChart bind:CPTPieChartBindingPieSliceWidthValues 
    toObject:[self sectorAllocation] 
     withKeyPath:@"arrangedObjects.sectorPercentage" 
      options:nil]; 

(sectorAllocation是NSArray的控制器)

同样我尝试使用CPTPlotBindingDataLabels

[pieChart bind:CPTPlotBindingDataLabels 
      toObject:[self sectorAllocation] 
     withKeyPath:@"arrangedObjects.sectorName" 
      options:nil]; 

绑定数据标签(sectorName是一个的NSString值)

但是,这似乎并没有工作我在控制台中收到以下错误

[__NSCFString setShadow:]:无法识别的选择发送到实例 0x60800023fb00

看来它不喜欢一个String对象,所以如何将我去呢?以及它寻找什么类型的对象?

回答

2

该绑定需要Core Plot图层的NSArrayCPTLayer),每个数据索引一个。 CPTTextLayer是一种常见选择,因为它显示文本,但其他图层类型也是允许的。

0

显然Core Plot需要一个类,其实例响应setShadow:。在可可中,只有一个类afaik:NSView。这似乎是绘制标签的合理类。

此外,您可以浏览Core Plot的文档以查明是否有框架类,它响应setShadow:

+0

好像它正在寻找一个CPTTextLayer的实例,它是CALayer的子类。我怀疑我会使用NSValueTransformer将NSString实例转换为CPTTextLayer实例 – Cory