【问题标题】:Core-plot Question : How to add a data Indicator核心情节问题:如何添加数据指标
【发布时间】:2010-02-24 11:04:17
【问题描述】:

我想在core-plot中添加类似于下图的数据指示线。

Plot Image http://img203.imageshack.us/img203/9412/plota.png

知道如何使用 core-plot 来实现这一点。我刚刚开始了解 core-plot,所以任何提示都会非常有用。

谢谢

编辑:

为了更好地理解,我创建了一个截屏视频来说明我的意思:

http://www.screencast.com/users/GauravVerma/folders/Jing/media/78fbef04-8785-46d6-9347-4f35d257109c

添加于 2 月 26 日:

我通过使用两个数据图解决了部分问题。这是当前的实现:

http://www.screencast.com/users/GauravVerma/folders/Jing/media/02a1e685-8bf8-41a9-aaa6-5ea6445f6a6c

我使用了两个数据图,一个是主要的,另一个只绘制一个数据点,当滑块值发生变化时会重新加载。

这是我的数据源方法(可能对某人有所帮助):

-(NSUInteger)numberOfRecordsForPlot:(CPPlot *)plot {
    if ([(NSString *)plot.identifier isEqualToString:@"Blue Plot"]){
        return [dataForPlot count];
    }else {
        return 1;
    }

}

-(NSNumber *)numberForPlot:(CPPlot *)plot field:(NSUInteger)fieldEnum recordIndex:(NSUInteger)index 
{
    if ([(NSString *)plot.identifier isEqualToString:@"Green Plot"]) {
        index = floor((double)[slider value]);
        if (index > [dataForPlot count] -1) {
            index = [dataForPlot count] -1;
        }
        NSLog(@"Green plot index : %f",index);
    }
    NSNumber *num = [[dataForPlot objectAtIndex:index] valueForKey:(fieldEnum == CPScatterPlotFieldX ? @"x" : @"y")];
    num = [NSNumber numberWithDouble:[num doubleValue] + 1.0];
    return num;
}

现在唯一的问题是找到一种简单的方法来画线。有什么想法吗??

【问题讨论】:

  • 您显示的图像中的哪个元素是“数据指示器”?
  • 红线,表示当前值。当用户移动滑块时,红线也会移动,在顶部显示当前值。有关实现,请查看 Roambi 应用程序的 Cardex 视图 (roambi.com)

标签: iphone objective-c cocoa-touch core-plot


【解决方案1】:

目前还没有任何直接的方法可以在 Core Plot 本身中进行这种类型的交互,尽管它计划在未来包含。

一种方法是将您自己的 UIView 放在图形顶部,并使用它来获取鼠标移动事件。

然后您可以有几种选择来显示红线:

1) 添加第二个y轴,根据鼠标事件定位

2) 添加一个条形图,其中只有一个条形,延伸到整个垂直空间

3) 添加一个有两个点的散点图,一个在底部,一个在顶部。

这些都是技巧,但它们应该都可以工作。

【讨论】:

  • 您能否详细说明一下,以及如何检测图形上的触摸事件,因为它不受支持..
  • 这个响应现在已经很老了。我们现在对 Core Plot 中的事件处理有了一些支持。 CPTPlotSpace 类中有几个委托方法允许您接收事件。只需设置绘图空间的委托,并实现更新红线位置的方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-20
相关资源
最近更新 更多