如何以编程方式在iphone中创建图形

时间:2011-07-30 10:52:49

标签: iphone

是否可以使用Objective-C在iphone中创建这样的图形。 enter image description here

我已经从hg clone http://core-plot.googlecode.com/hg/ core-plot下载了核心图库,并尝试从http://www.jaysonjc.com/programming/pie-chart-drawing-in-iphone-using-core-plot-library.html做一个例子,但我甚至无法做到也没有建立的下载。它给出的错误是:

  

/Users/apple/Desktop/coreplotLibExamples/piechartsample/Classes/PieChart_SampleViewController.m:15:0 /Users/apple/Desktop/coreplotLibExamples/piechartsample/Classes/PieChart_SampleViewController.m:15:error:'CPLayerHostingView'undeclared(first在这个函数中使用)

3 个答案:

答案 0 :(得分:1)

这取决于您的需求。如果y轴上有固定数量的类别,则可以创建三个UIViews,红色,黄色和绿色,然后分别设置宽度。如果您有不同数量的类别/比例,则需要进行石英绘图,并且可能需要查看图形API,例如core plot

无论如何,要使用UIViews执行此操作,您的代码将看起来像这样(对于图中的每个项目):(未经测试)......

#define kBarHeight 50 // Or however much you want

float graphWidth = 200; // Suppose you had 200 px across.    

int high = 3;
int emerging = 3;
int low = 6;

float total = high+emerging+low;
float oneSect = graphWidth/total;

redView.frame = CGRectMake(0,0,oneSect*high,kBarHeight);
yellowView.frame = CGRectMake(redView.frame.size.width,0,oneSect*emerging,kBarHeight);
greenView.frame = CGRectMake(redView.frame.size.width+yellowView.frame.size.width,0,oneSect*low,kBarHeight);

答案 1 :(得分:1)

您可以使用Core Plot

答案 2 :(得分:0)

对于上面编辑的问题,它给出了错误,因为'CPLayerHostingView'是针对MAC的。我们需要在iphone和viewDidLoad方法中使用'CPTGraphHostingView'.hostedGraph = graph;