2010-11-18 30 views
6

Tôi đang cố gắng chạy một số mã khi người dùng nhấp (hoặc chạm) một biểu đồ trên biểu đồ mye được tạo bằng Core Plot.Chạm vào ô plotSymbol trong CorePlot

này không làm việc với phân tán:

-(void)scatterPlot:(CPScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex: (NSUInteger)index 
{ 
    NSLog(@"plotSymbolWasSelectedAtRecordIndex %d", index); 
} 

Nhưng việc này cũng khi tôi sử dụng barPlot:

-(void)barPlot:(CPBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index 
{ 
    NSLog(@"barWasSelectedAtRecordIndex %d", index); 
} 

Những gì còn thiếu từ nỗ lực của tôi để nắm bắt khi người dùng nhấp hoặc chạm vào tôi scatterPlot?

+0

hi am cũng đang cố gắng tích hợp tính năng này trong mã của tôi, nhưng khi tôi thêm phương pháp này, thậm chí không được gọi khi chúng tôi gõ vào barplot. Xin vui lòng giải thích rõ ràng, về implimentation phương pháp này.thx trước ... – ravoorinandan

Trả lời

14

Bạn cần đặt plotSymbolMarginForHitDetection trên ô phân tán của mình. Bạn nên đặt nó để phù hợp với kích thước của biểu tượng âm mưu của bạn hoặc hơi lớn hơn nếu bạn cần một mục tiêu lớn hơn để bấm vào.

+0

Cảm ơn rất nhiều! Cũng đáng chú ý là bạn có thể đặt plotSymbolMarginForHitDetection thành chiều rộng/số biểu đồ của bạn để dễ dàng chọn biểu tượng khi có ít biểu tượng và vẫn có thể chọn biểu tượng nhất định khi có nhiều biểu tượng. –

+0

Người đàn ông tôi thích cách mọi thứ tiếp xúc với chúng tôi trong khuôn khổ này. Được thiết kế tốt. –

9

Ngoài ra, đừng quên đặt đại biểu của CPScatterPlot để trỏ đến đối tượng của bạn hoặc nó sẽ không được gọi.

1

Nếu bạn đang thiết lập công cụ của mình tại thời điểm init trong lớp con của CPTGraphHostingView (nói trong initWithCoder đến từ xib), thuộc tính được lưu trữ trên máy chủ của bạn có thể bị ghi đè bởi Core Plot (ít nhất là 1.3), và vì vậy thao tác nhấn sẽ ngắn mạch.

https://code.google.com/p/core-plot/issues/detail?id=555

Không cần phải nói điều này xảy ra với tôi :-) workaround của tôi là để thiết lập hostedGraph trong numberOfRecordsForPlot của tôi nếu nó không được thiết lập rồi.

Các vấn đề liên quan