2012-07-06 63 views
3

我正在使用Core Plot中的CPTXYGraph繪製餅圖。我已經使用委託方法在CPTXYGraph上獲取觸摸反饋餅圖

-(void)pieChart:(CPTPieChart *)plot sliceWasSelectedAtRecordIndex:(NSUInteger)index 

在單擊某個餅圖的特定切片時執行某些操作。但是當我觸摸這個餅圖時,我需要得到一個反饋或某種類型的圖像變化來表示特定的切片就像按鈕事件一樣被觸摸。

是否有任何委託方法實現相同。

+0

你想提供什麼樣的反饋?更改所選切片的填充?爆炸選定的切片?添加標籤或註釋?核心劇情可以做所有這些事情,但沒有單一的「選擇」指示。 – 2012-07-06 11:31:01

+0

我想給每個切片提供一個按鈕類型的反饋。告訴用戶他選擇了哪個片段。 – 2012-07-06 11:36:07

+0

「按鈕式反饋」是什麼意思? – 2012-07-06 23:24:28

回答

0

實現您的數據源的-sliceFillForPieChart:recordIndex:方法。跟蹤選定的切片(如果有的話)並使用它來決定應用到每個切片的填充。每次選擇更改時強制在圖上調用-reloadData以強制它加載新的切片填充。

+0

您可以讓我知道如何爲特定選定切片添加漸變色... – 2012-07-10 17:21:06

+0

使用'[CPTFill fillWithGradient:myGradient]'創建填充。請參閱[CPTGradient文檔](http://core-plot.googlecode.com/hg/documentation/html/iOS/interface_c_p_t_gradient.html)和Core Plot示例應用程序,以獲取有關使用漸變可以執行的操作的詳細信息。 – 2012-07-11 00:23:29

2

會有一些工作要做。

首先,將其實現爲餅圖委託功能。

-(void)pieChart:(CPTPieChart *)plot sliceWasSelectedAtRecordIndex:(NSUInteger)index 
{ 
    indexOfPieGraphPlot = index; //gives index of pie which is selected. 
    isPieGraphPlot = YES;  //boolean. if set to yes, will call rootcontroller function which will add pop up. 
} 

然後添加CPTPlotSpaceDelegate在.h文件中

然後使用此功能

- (BOOL)plotSpace:(CPTPlotSpace *)space shouldHandlePointingDeviceUpEvent:(id)event atPoint:(CGPoint)point 
{ 
    if(isPieGraphPlot) //if yes call showpopup of rootcontroller 
    { 
    isPieGraphPlot = NO; 
    [rootController showPopUpView:point indexForPlot:indexOfPieGraphPlot]; 
    // point gives the x,y of the pie over which you want a pop up. 
    } 
    else // if no then call remove popup from rootcontroller. this, incase user clicks anywhere else in graph. 
    { 
     [rootController removePopUp]; 
    } 
    return YES; 
} 
+0

我已經在使用 - (void)pieChart:(CPTPieChart *)plot sliceWasSelectedAtRecordIndex:(NSUInteger)索引方法根據單擊的片段填充表視圖。我想指定給用戶他已經點擊了特定的片段。例如,當你點擊一個按鈕時,會有一個ON狀態和一個OFF狀態來指定他點擊它的用戶。有沒有實現餅圖? – 2012-07-06 09:57:58