0

在我的应用程序中,我正在使用 Coreplot 来绘制一个 CPTScatterPlot。现在我想在图表上做一个扫描仪,这个 UIView 动画(一条线)应该像一条与 Y 轴对齐的线,并穿过 x=0 到 x 的最后一个值。

我想在此自定义 UIView(扫描仪)移动时根据 y 值执行操作。

任何帮助,将不胜感激。

谢谢,

4

1 回答 1

0

我在我的一个应用程序中有类似的东西,我的方法是在散点图顶部添加一个条形图,我使用该条形图来表示跟踪用户触摸的线。然后我有一个覆盖在绘图上的 UIView 并跟踪散点图触摸并显示被触摸点的详细信息。

如果您只想显示一条线,添加条形图可能是最简单的,那么您不必担心绘图空间坐标与超级视图坐标。条形图数据源仅返回用户触摸位置的值,其高度与散点图的大小相匹配。

快速版本是您可以使用 handlePlotTouchEventInSpace:atPoint:isNewEvent 来跟踪用户在图形上的触摸。

从那里您可以在绘图空间上使用 plotPoint:forPlotAreaViewPoint 方法来获取触摸的坐标。

这样的事情是一个很好的起点。让这一切顺利进行是一段旅程,但一旦你开始拼图,它就不会太糟糕了。

-(void)handlePlotTouchEventInSpace:(CPTPlotSpace *)space atPoint:(CGPoint)point isNewEvent:(BOOL)newEvent {
    NSDecimal plotPoint[2]; 
    CPTXYPlotSpace *xySpace = (CPTXYPlotSpace *)space; 
    [xySpace plotPoint:plotPoint forPlotAreaViewPoint:point]; 

之后 plotPoint 将包含绘图空间内触摸的 x 和 y 位置。

于 2013-05-07T21:11:07.500 回答