Core Plot滚动中断

时间:2014-03-18 05:36:03

标签: ios objective-c core-plot

我使用 CPTScatterPlot 来显示数据,我的所有绘图符号都有数据标签。我需要检测用户触摸并使用 - plot:dataLabelWasSelectedAtRecordIndex:来检测它。但是,如果我单击数据标签并尝试滚动,则滚动不起作用。

有没有办法检测用户是否触摸但是没有中断滚动?

2 个答案:

答案 0 :(得分:0)

我们对Core Plot代码的release-2.0分支上的事件处理和相关委托方法进行了一些更改。从GitHub获取最新代码并切换到release-2.0分支以获取更新的代码。请注意,此更新需要Accelerate框架,并从master分支上的1.x版本中提出最低系统要求。

答案 1 :(得分:0)

我在代码中修复了这个问题,使用图形图空间委托而不是CPTPlot委托。

-(BOOL)plotSpace:(CPTPlotSpace *)space shouldHandlePointingDeviceDownEvent:(CPTNativeEvent *)event atPoint:(CGPoint)point {
    _lastPlotSpaceDownPoint=point;
    return YES;
}

-(BOOL)plotSpace:(CPTPlotSpace *)space shouldHandlePointingDeviceUpEvent:(CPTNativeEvent *)event atPoint:(CGPoint)point {
    CGFloat distance = hypotf((_lastPlotSpaceDownPoint.x - point.x), (_lastPlotSpaceDownPoint.y - point.y));
    if (abs(distance) < 5) {
        NSUInteger recordIndex=[self.linePlot indexOfVisiblePointClosestToPlotAreaPoint:point];
        // your code here
    }
    return YES;
}