当用户点击(或触摸)使用Core Plot创建的mye图上的plotSymbol时,我正在尝试运行一些代码。
这不适用于scatterPlot:
-(void)scatterPlot:(CPScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex: (NSUInteger)index
{
NSLog(@"plotSymbolWasSelectedAtRecordIndex %d", index);
}
但是当我使用barPlot时,这很有效:
-(void)barPlot:(CPBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index
{
NSLog(@"barWasSelectedAtRecordIndex %d", index);
}
当用户点击或触摸我的scatterPlot时,我尝试捕获的内容是什么?
答案 0 :(得分:14)
您需要在散点图上设置plotSymbolMarginForHitDetection
。您应该将其设置为与绘图符号的大小相匹配,或者如果您需要更大的目标点击,则应稍大一些。
答案 1 :(得分:9)
另外,不要忘记将CPScatterPlot的委托设置为指向您的对象,否则它将不会被调用。
答案 2 :(得分:1)
如果你是在初始化时在CPTGraphHostingView的子类中设置你的东西(比如来自xib的initWithCoder),你的hostedGraph属性可能会被Core Plot破坏(至少从1.3开始),所以点击处理会短路。
https://code.google.com/p/core-plot/issues/detail?id=555
毋庸置疑,这件事发生在我身上:-)我的解决方法是在我的numberOfRecordsForPlot中设置hostedGraph,如果它尚未设置的话。