第一次使用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;
}
第一个屏幕截图:显示TableView
第二个屏幕截图:显示GraphView 旁注:这是一个sampleplot =)
第3个屏幕截图: GraphView解雇
有谁知道我错过了什么? (或搞砸了;))
答案 0 :(得分:0)
将视图添加为UITableView
的子视图通常不是一个好主意。
相反,您可以删除表视图并将其替换为Core Plot视图:
[tableView removeFromSuperview];
[containerView addSubview:corePlotView];
确保您在某个地方引用了表格视图,或者它将被释放。