2010-02-24 25 views
6

tôi muốn thêm dòng chỉ báo dữ liệu tương tự như hình ảnh sau vào cốt lõi.Câu hỏi cốt lõi Câu hỏi: Cách thêm Chỉ số dữ liệu

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

Bất kỳ ý tưởng làm thế nào tôi có thể đạt được điều này sử dụng lõi-cốt truyện. Tôi mới bắt đầu hiểu cốt lõi, vì vậy mọi mẹo sẽ rất hữu ích.

Cảm ơn

Edit:

Để hiểu rõ hơn tôi đã tạo ra một hình màn ảnh để hiển thị những gì tôi có nghĩa là:

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

Ngày 26 tháng hai:

Tôi có solv ed một phần vấn đề bằng cách sử dụng hai dataplots. đây là việc thực hiện hiện tại:

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

Tôi đã sử dụng hai dataplots, một là chính một & khác một lô chỉ có một điểm dữ liệu được nạp lại khi giá trị thanh trượt thay đổi.

Dưới đây là phương pháp Datasource của tôi (có thể giúp ai đó):

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

Bây giờ chỉ còn lại là vấn đề để tìm ra một cách dễ dàng để vẽ đường. Bất kỳ ý tưởng ??

+1

Yếu tố nào trong hình ảnh bạn đang hiển thị là "chỉ báo dữ liệu"? –

+0

đường màu đỏ, hiển thị giá trị hiện tại. Khi người dùng di chuyển thanh trượt, đường màu đỏ cũng sẽ di chuyển hiển thị giá trị hiện tại ở trên cùng. Để thực hiện, vui lòng xem giao diện Cardex của ứng dụng Roambi (http://www.roambi.com/) –

Trả lời

6

Hiện tại, không có cách trực tiếp nào để thực hiện loại tương tác này trong Core Plot, mặc dù nó được lên kế hoạch cho việc đưa vào tương lai.

Một cách để thực hiện điều đó là đặt UIView của riêng bạn lên trên đầu biểu đồ và sử dụng điều đó để nhận các sự kiện di chuyển chuột.

Sau đó bạn có thể có một vài lựa chọn cho hiển thị đường đỏ:

1) Thêm một trục y thứ hai, và vị trí của nó theo các sự kiện chuột

2) Thêm một âm mưu thanh với chính xác một thanh, mở rộng trên toàn bộ không gian dọc

3) Thêm ô phân tán có hai điểm, một ở phía dưới và một ở trên cùng.

Đây là tất cả các hack, nhưng tất cả chúng đều hoạt động.

+0

bạn có thể xây dựng một chút về điều này và cách phát hiện sự kiện chạm trên biểu đồ vì nó không được hỗ trợ .. –

+0

phản ứng bây giờ đã khá cũ. Bây giờ chúng tôi có một số hỗ trợ cho xử lý sự kiện trong Core Plot. Có một số phương thức ủy nhiệm trong lớp CPTPlotSpace cho phép bạn nhận các sự kiện.Chỉ cần thiết lập các đại biểu của không gian âm mưu, và thực hiện các phương pháp để cập nhật vị trí của đường màu đỏ của bạn. –