首次與CorePlot工作(幾個小時試圖建立起來後:P)對我的看法子視圖的TableView的去除 - 泰伯維不可見
,我有一個實現代碼如下。當某個IBAction被調用時,我想顯示另一個視圖(圖形)而不是tableview。
我的做法是添加一個與tableview相同大小的子視圖。它可以很好地顯示圖形,但是當我從[table subviews]中刪除圖形視圖時,tableview不會再出現。
注:
expenseTable: my tableView
hasSubView: (BOOL) that indicates if a graph is shown right now or not
代碼
-(IBAction)displayDayBalanceGraph:(id)sender{
if (hasSubView) {
[[expenseTable subviews] makeObjectsPerformSelector: @selector(removeFromSuperview)];
NSLog(@"%@",expenseTable.subviews);
}
else{
[self initializeMonthArray];
CPTGraphHostingView *host = [self buildGraphView];
[expenseTable addSubview:host];
CPTXYGraph *graph = [[CPTXYGraph alloc ]initWithFrame:host.frame];
host.hostedGraph = graph;
CPTScatterPlot *plot = [[CPTScatterPlot alloc]init ];
plot.dataSource = self;
[graph addPlot:plot];
[expenseTable reloadData];
hasSubView = !hasSubView;
}
}
-(CPTGraphHostingView *)buildGraphView{
CPTGraphHostingView *view = [[CPTGraphHostingView alloc]initWithFrame:CGRectMake(0, 0, 312, 260)];
[view setBackgroundColor:[self grayColor]];
return view;
}
1截圖:TableView中顯示
第二截圖:GraphView顯示 旁註:這是一個sampleplot =)
3截圖:GraphView駁回
有沒有人一個想法是什麼我錯過了什麼? (或混亂;))
- 因爲所有的細胞都是子視圖,我必須將它們全部刪除,我只是想通了。所以我需要知道新的子視圖有哪些索引?有任何想法嗎? – 2012-03-19 17:53:21
你是如何解僱GraphView的? – 2012-03-19 19:32:47
看到上面的代碼:'[[expenseTable子視圖] makeObjectsPerformSelector:@selector(removeFromSuperview)];' – 2012-03-19 21:41:41