如何从CPTPlotSymbol创建UIImage?

时间:2015-03-16 05:20:15

标签: ios core-plot

我是Core-Plot的新手,这是我的问题。

我使用Graph课程创建了ScatterPlot。而我的情节符号创建数据源方法是:

- (CPTPlotSymbol*)symbolForScatterPlot:(CPTScatterPlot *)plot recordIndex:(NSUInteger)index
{
    CPTPlotSymbol *symbol = [[CPTPlotSymbol alloc]init];
    if (index %2 == 0)
    {
        symbol.symbolType = CPTPlotSymbolTypeDiamond;
        symbol.fill = [CPTFill fillWithColor:[CPTColor redColor]];
        symbol.size = CGSizeMake(10, 10);
        return symbol;
    }
    else
    {
        symbol.symbolType = CPTPlotSymbolTypeEllipse;
        symbol.fill = [CPTFill fillWithColor:[CPTColor orangeColor]];
        symbol.size = CGSizeMake(15, 15);
        return symbol;
    }
}

当我从scatter plot中选择任何绘图符号时,我想将选定的绘图符号转换为UIImage,因为在转换为图像后我想将图像从源位置拖动到任何位置其他地方plotspace

我实现了委托方法,从散点图中获取选定的绘图符号,代码为

- (void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index
{
    CPTPlotSymbol *selectedSymbol = [plot plotSymbolForRecordIndex:index];
    NSLog(@"%@", selectedSymbol);
}

从上面的代码我得到我选择的情节符号对象。但是从这里我不知道如何将这个情节符号对象转换为UIImage。如果任何人指导我会很好或有任何其他更好的方法来解决我的问题意味着也以这种方式帮助我。提前致谢

1 个答案:

答案 0 :(得分:1)

您可以使用-renderAsVectorInContext:atPoint:scale:方法将符号绘制为CGContext。创建一个上下文,将符号绘制到其中,然后使用UIGraphicsGetImageFromCurrentImageContext()创建UIImage