Core-Plot:如何将自定义图像绘图符号居中

时间:2013-02-03 18:38:12

标签: ios objective-c image plot core-plot

我正在使用自定义图片符号,如Showing images on Scattering Graph as plot symbols in Core plot iOS中所述。另请参阅Positioning label on CPTBarPlot (Core-Plot)关于数据标签在CPTPlot中的定位。

但是,我没有看到CPTScatterPlot.labelOffset我需要的行为。正值会增加图像底部和点之间的距离,而负值会增加图像顶部和点之间的距离。我需要将图像置于点上。见截图:

  • 正面labelOffset值:http://i.stack.imgur.com/O1uSe.png
  • 否定labelOffset值:http://i.stack.imgur.com/E9fkL.png

我的解决方案很糟糕,需要我在CustomImageForScatterPlot的{​​{1}}方法中修改图片框。关于如何让drawInContext按我的方式工作的任何想法?

1 个答案:

答案 0 :(得分:5)

这种行为对于数据标签是正确的。您想使用绘图符号。

-(CPTPlotSymbol *)symbolForScatterPlot:(CPTScatterPlot *)plot
                           recordIndex:(NSUInteger)index
{
    CPTPlotSymbol *symbol = nil;

    if ( /* use symbol for this index? */ ) {
        symbol = [CPTPlotSymbol ellipsePlotSymbol];
        symbol.fill = [CPTFill fillWithImage:/* symbol image */];
        symbol.size = CGSizeMake(width, height);
    }

    return symbol;
}

如果您希望每个点都有一个符号,请设置plotSymbol属性,而不是实现此数据源方法。