2011-11-20 39 views
0

我想在我的iOS應用程序中使用來自Core Plot的散點圖。我將Core Plot設置爲Core Plot wiki,然後從Plot Gallery項目中將PlotItem.h/m,PlotGallery.h/m和SimpleScatterPlot.h/m複製到我的項目中。代碼ScatterPlot不讓我點擊繪圖點或移動圖形

CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme]; 
SimpleScatterPlot *scatterPlot = [[SimpleScatterPlot alloc]init]; 
[scatterPlot generateData]; 
[scatterPlot renderInLayer:hostView withTheme:theme]; 

運行,圖形視圖顯示在我的應用程序中。但是我無法移動圖形視圖或者在Plot Gallery項目中點擊繪圖點。我該如何設置它?

+0

什麼是'hostView'? –

+0

hostView是一個CPTGraphHostingView,它在我的viewController.h中聲明,並具有一個IBOutlet到Interface Builder中的CPTGraphHostingView。 – Jambaman

回答

0

繪圖庫是一個簡單的核心繪圖演示的不佳起點。它有很多額外的「東西」來支持生成一個帶有所有不同圖的縮略圖的表格視圖。 -renderInView:withTheme:方法用於製作表格視圖的縮略圖。它將圖形呈現爲圖像,這就是爲什麼你失去了交互性。 除非您需要靈活地將新圖塊快速添加到您的應用程序並輕鬆支持MacOS和iOS,否則我會建議使用其他示例之一作爲起點。該架構更簡單,更易於理解。

您需要在可見視圖層次結構中有CPTGraphHostingView。將您的圖表設置爲其hostedGraph。查看任何其他示例應用程序,以瞭解如何設置託管視圖。繪圖庫圖中的圖形設置和數據源代碼(例如,SimpleScatterPlot)很好,應該可以在任何地方工作。

+0

你的意思是renderInLayer:withTheme:只創建一個圖像的方法嗎? 由PlotGallery項目中的SimpleScatterPlot製作的圖形可用於移動和互動,但似乎無法在我自己的項目中設置此項目... – Jambaman

+0

好吧,現在我終於設法弄到了在我的應用程序中的情節。從PlotGallery上覆制粘貼並在線閱讀一些(舊)教程。現在主要的問題是當我觸摸一個繪圖「按鈕」時顯示值。我相信這和 - (void)scatterPlot:(CPTScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex:(NSUInteger)index-method有關,但是我不熟悉delagates/datasources以使其工作。當我按下一個繪圖按鈕時是否會自動調用此方法?哪些參數被髮送? – Jambaman

+0

在繪圖庫和其他示例應用程序中有該委託方法的示例。參數是被觸動的情節(所以你可以使用同一個代表多於一個情節)和點的索引。該索引與用於從數據源檢索點的索引相匹配。 –