我现在需要一个frame上同时显示多个图表,但是我用subview的时候,程序就crash了,直接用self.view没事,这是为什么?我跟踪了一下也没发现什么问题?有谁这么用过?求指点。
代码如下UIView *subv = [self.view.subviews objectAtIndex:0];
graph = [[CPTXYGraph alloc] initWithFrame:subv.bounds];
CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];  
    
CPTGraphHostingView *hostingView = (CPTGraphHostingView *)subv;
hostingView.hostedGraph = graph;   //这一行报错了。-------下面这个直接用self.view不报错
graph = [[CPTXYGraph alloc] initWithFrame:self.view.bounds];
CPTTheme *theme = [CPTTheme themeNamed:kCPTDarkGradientTheme];  
    
CPTGraphHostingView *hostingView = (CPTGraphHostingView *)self.view;
hostingView.hostedGraph = graph;

解决方案 »

  1.   

    subview是子视图而self.view是这个controller默认的视图,有可能会因为子视图不存在而是graph的初始化失败产生错误
      

  2.   

    自己搞定了,原来要把view替换成core plot中提供的graphview
      

  3.   

    楼主你好,我想问下core plot怎么在一个视图控制器里面同时显示折线图、柱状图、饼状图啊,我用另外的视图控制器来加载一个core plot图的控制器,但是始终加载不上,是什么原因啊
      

  4.   


    让一个控制器控制多个子视图(CPTGraphHostingView)就行了
      

  5.   


    谢谢,可以加载进来了,但是CPTGraphHostingView是反的,可以把它设置过来吗?
      

  6.   


    怎么会是反的啊?我用的都是正的啊。CPTGraphHostingView的坐标系原点在左下角,UIView的坐标系原点在左上角,你是不是这个弄混了?
      

  7.   


    我是在一个UIviewcontroller里面添加了一个CPTGraphHostingView和一个分段控件,CPTGraphHostingView来显示图,分段控件来切换(折线图、柱状图、饼图),CPTGraphHostingView里面是加载的其它的UIviewcontroller控制器(这里面才是画的图)
      

  8.   


    你说的一个视图控制器加几个CPTGraphHostingView,但是折线图和柱状图都创建到一个视图控制器里面-【- ( double *)doublesForPlot:( CPTPlot *)plot field:( NSUInteger )fieldEnum recordIndexRange:( NSRange )indexRange】这个方法,生成折线图是不会报错,但是一加上柱状图,就报错了,应为折线图和柱状图在里面的处理方法不一样,我不知道柱状图时这个方法里面是怎么处理的