2010-11-18 74 views
6

我试图运行一些代码,当用户点击(或触摸)plotyymbol mye graph创建与核心剧情。在CorePlot中触摸plotSymbol

这不会散点图工作:

-(void)scatterPlot:(CPScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex: (NSUInteger)index 
{ 
    NSLog(@"plotSymbolWasSelectedAtRecordIndex %d", index); 
} 

但这个效果很好,当我使用barPlot:

-(void)barPlot:(CPBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index 
{ 
    NSLog(@"barWasSelectedAtRecordIndex %d", index); 
} 

什么是从我的尝试失踪捕捉当用户点击或触摸我散点图?

+0

你好我也试图把这个功能集成到我的代码中,但是当我添加这个方法时它甚至没有被调用,当我们点击barplot时。请解释清楚,关于这种方法的提前实现.thx ... – ravoorinandan 2011-03-29 09:24:57

回答

14

您需要在散点图上设置plotSymbolMarginForHitDetection。您应该将其设置为与您的情节符号的大小相匹配,或者如果您需要更大的目标进行点击,则应稍大。

+0

非常感谢! 另外值得注意的是,您可以将plotSymbolMarginForHitDetection设置为您的绘图宽度/符号数量,以便在它们很少时更容易选择符号,但仍然可以在其中有很多符号时选择某个符号。 – 2012-03-09 07:39:42

+0

我很喜欢这个框架中的每一件事都暴露给我们。精心设计。 – 2013-12-06 01:15:24

9

此外,不要忘记将CPScatterPlot的委托设置为指向您的对象,否则它将不会被调用。

1

如果你在初始阶段在CPTGraphHostingView的子类中设置你的东西(比如initWithCoder来自xib),你的hostedGraph属性可能会被Core Plot(至少从1.3开始)破坏,所以水龙头处理将会短路。

https://code.google.com/p/core-plot/issues/detail?id=555

不用说,这发生在我身上:-)我的解决方法是设置hostedGraph我numberOfRecordsForPlot如果它尚未设置。