我使用 CPTScatterPlot 来显示数据,我的所有绘图符号都有数据标签。我需要检测用户触摸并使用 - plot:dataLabelWasSelectedAtRecordIndex
:来检测它。但是,如果我单击数据标签并尝试滚动,则滚动不起作用。
有没有办法检测用户是否触摸但是没有中断滚动?
答案 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;
}