core-plot - 检测CPTScatterPlot(iOS)点之间的线上触摸?

时间:2014-02-14 18:23:05

标签: core-plot

我有一个用CPTScatterPlot制作的折线图。我可以很容易地检测到绘图点上的触摸,但我也想回应连接点的线上的触摸。

有一种简单的方法吗?

我知道我可以使用indexOfVisiblePointClosestToPlotAreaPoint找到最接近用户触摸的绘图点。转换为查看坐标并对下一个(或上一个)绘图点执行相同操作,我可以计算用户的触摸是否在连接这两个点的线上,如下所示:

(pt2.x - pt1.x)*(touchPoint.y - pt1.y) - (pt2.y - pt1.y)*(touchPoint.x - pt1.x)

其中pt1和pt2是两个绘图点的视图坐标,而touchPoint是用户触摸它们之间某处的点(pt1.x< = touchPoint.x< = pt2.x)。

这会有效,但我认为必须有一个更简单的方法 - 看起来Core Plot应该能够为我做这个。

有没有更简单的方法来做到这一点,还是我必须以艰难的方式去做?如果我必须以艰难的方式去做,这是否值得提交作为核心情节团队的增强?如果是这样,我将在CPTScatterPlot中实现它并发送补丁。否则我会在我自己的课程中完成并自己处理。

1 个答案:

答案 0 :(得分:0)

Core Plot目前不支持此功能,但有open issue请求它。如果您想要分享一个解决方案,欢迎提出请求。