我正在使用Core Plot框架繪製餅圖,並且在繪製餅圖本身時沒有問題。然而,我需要餅圖在本質上是交互式的,即如果我點擊餅圖中的任何特定部分,它應該觸發導航到顯示該特定部分的細節的頁面。如何在Core Plot餅圖中啓用觸摸選擇區域?
我嘗試使用方法-(void)pieChart:sliceWasSelectedAtRecordIndex:
,但該委託方法從未被調用。我需要什麼來啓用此觸摸互動?
我正在使用Core Plot框架繪製餅圖,並且在繪製餅圖本身時沒有問題。然而,我需要餅圖在本質上是交互式的,即如果我點擊餅圖中的任何特定部分,它應該觸發導航到顯示該特定部分的細節的頁面。如何在Core Plot餅圖中啓用觸摸選擇區域?
我嘗試使用方法-(void)pieChart:sliceWasSelectedAtRecordIndex:
,但該委託方法從未被調用。我需要什麼來啓用此觸摸互動?
我在我的iPad應用程序中使用CorePlot 0.2.2實現了餅片選擇。你猜使用 (無效)的餅圖:sliceWasSelectedAtRecordIndex:是正確的,但也許你已經忘記 申報以下兩件事情:
我的視圖控制器看起來像這樣在頭聲明:
@interface YourViewController : UIViewController < CPPieChartDataSource,
CPPieChartDelegate,
... >
{
...
CPXYGraph* pieGraph;
CPGraphHostingView* pieView;
}
@property (nonatomic, retain) IBOutlet CPGraphHostingView* pieView;
- (void)pieChart:(CPPieChart *)plot sliceWasSelectedAtRecordIndex:(NSUInteger)index;
@end
的(無效)時的餅圖的創建被稱爲viewDidLoad中,其中I設置數據源和委託餅圖:
-(void)viewDidLoad {
[self createPie];
}
-(void)createPie {
pieGraph = [[CPXYGraph alloc] initWithFrame:CGRectZero];
pieGraph.axisSet = nil;
self.pieView.hostedGraph = pieGraph;
CPPieChart *pieChart = [[CPPieChart alloc] init];
// This is important in order to have your slice selection handler called!
pieChart.delegate = self;
pieChart.dataSource = self;
pieChart.pieRadius = 80.0;
[pieGraph addPlot:pieChart];
[pieChart release];
}
- (void)pieChart:(CPPieChart *)plot sliceWasSelectedAtRecordIndex:(NSUInteger)index {
// Do whatever you need when the pie slice has been selected.
}
使用最後corePlot framework (1.4)
我找不到CPPieChart
但我固定CPTPieChartDelegate
:
@interface CPDFirstViewController : UIViewController <CPTPlotDataSource, CPTPieChartDelegate, ...>
而且這種方法:
-(void)pieChart:(CPTPieChart *)pieChart sliceWasSelectedAtRecordIndex:(NSUInteger)index
{
// Put your action here
}
CPPieChartDelegate
不承認任何更多的是代表從Xcode中,使用CorePlot 1.4
希望它能幫助。
DOM
核心劇情類前綴從「CP」到「CPT」改變。 – 2014-01-14 02:03:35
太糟糕了提問者從來不接受任何笑... – Reimius 2012-12-20 16:35:57