2010-11-18 71 views
6

我試圖運行一些代碼,當用戶點擊(或觸摸)plotyymbol mye graph創建與核心劇情。在CorePlot中觸摸plotSymbol

這不會散點圖工作:

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

但這個效果很好,當我使用barPlot:

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

什麼是從我的嘗試失蹤捕捉當用戶點擊或觸摸我散點圖?

+0

你好我也試圖把這個功能集成到我的代碼中,但是當我添加這個方法時它甚至沒有被調用,當我們點擊barplot時。請解釋清楚,關於這種方法的提前實現.thx ... – ravoorinandan 2011-03-29 09:24:57

回答

14

您需要在散點圖上設置plotSymbolMarginForHitDetection。您應該將其設置爲與您的情節符號的大小相匹配,或者如果您需要更大的目標進行點擊,則應稍大。

+0

非常感謝! 另外值得注意的是,您可以將plotSymbolMarginForHitDetection設置爲您的繪圖寬度/符號數量,以便在它們很少時更容易選擇符號,但仍然可以在其中有很多符號時選擇某個符號。 – 2012-03-09 07:39:42

+0

我很喜歡這個框架中的每一件事都暴露給我們。精心設計。 – 2013-12-06 01:15:24

9

此外,不要忘記將CPScatterPlot的委託設置爲指向您的對象,否則它將不會被調用。

1

如果你在初始階段在CPTGraphHostingView的子類中設置你的東西(比如initWithCoder來自xib),你的hostedGraph屬性可能會被Core Plot(至少從1.3開始)破壞,所以水龍頭處理將會短路。

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

不用說,這發生在我身上:-)我的解決方法是設置hostedGraph我numberOfRecordsForPlot如果它尚未設置。