2010-02-24 32 views
6

我想在覈心圖中添加一個類似於以下圖片的數據指標線。核心圖問題:如何添加數據指標

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

任何想法如何能夠做到這一點使用核心情節。我剛剛開始瞭解核心情節,所以任何提示都會非常有用。

感謝

編輯:

爲了更好地理解我創建了一個截屏,顯示我的意思:

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

添加於2月26日:

我有solv通過使用兩個數據滑塊來解決部分問題。這裏是當前實現:

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

我用了兩個dataplots,一個是主要的一個&另外一個地塊被重新裝載滑塊值更改時只有一個數據點。

這裏是我的數據源的方法(可能會幫助別人):

-(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; 
} 

現在唯一的問題仍然是要找出一個簡單的方法來畫線。有任何想法嗎 ??

+1

您顯示的圖像中的哪個元素是「數據指標」? – 2010-02-24 17:33:46

+0

紅線顯示當前值。當用戶移動滑塊時,紅線也會移動,顯示當前的數值。有關實現,請參閱Roambi應用程序(http://www.roambi.com/)的Cardex視圖 – 2010-02-25 05:09:45

回答

6

在Core Plot本身中沒有任何直接的方法可以做這種交互,儘管它計劃在未來包含。

這樣做的一種方法是將您自己的UIView放置在圖形的頂部,然後使用它來獲取鼠標移動事件。

然後可以具有用於表示紅線幾個選擇:

1)添加第二個y軸和位置根據鼠標事件

2)添加一個柱狀圖正好與一個它條,延伸到整個垂直空間上

3)添加散點圖,有兩個點,一個在底部,一個在頂部。

這些都是黑客,但他們都應該工作。

+0

您可以詳細介紹一下以及如何檢測圖形上的觸摸事件,因爲它不受支持。 – 2011-06-21 09:55:09

+0

This迴應現在已經很老了。我們現在對Core Plot中的事件處理有一些支持。在CPTPlotSpace類中有幾個委託方法可以讓你接收事件。只需設置繪圖空間的代表,並實施更新紅線位置的方法。 – 2011-06-24 09:03:02