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

dan*_*ear 5 plot image objective-c core-plot ios

我正在使用自定义图像符号,如在散点图上显示图像作为核心图iOS中的绘图符号中所述.另请参阅CPTBarPlot(Core-Plot)上的定位标签,关于数据标签在a中的定位CPTPlot.

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

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

我的解决方案是hacky,并要求我在我CustomImageForScatterPlotdrawInContext方法中修改图像框架.关于如何按labelOffset我的方式工作的任何想法?

Eri*_*och 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;
}
Run Code Online (Sandbox Code Playgroud)

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

  • 谢谢,你说得对,我之前使用的是`dataLabelForPlot`.对于其他人的FYI,上面代码示例中的符号图像可以使用以下参考PNG资源:`[CPTImage imageForPNGFile:[[NSBundle mainBundle] pathForResource:@"icon_volume"ofType:@"png"]]`. (3认同)