如何以编程方式在 iphone 中创建图表
Posted
技术标签:
【中文标题】如何以编程方式在 iphone 中创建图表【英文标题】:How to create Graphs in iphone programmatically 【发布时间】:2011-07-30 10:52:48 【问题描述】:是否可以使用 Objective-C 在 iphone 中创建这样的图形。
我已经从 hg clone http://core-plot.googlecode.com/hg/ core-plot 下载了 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:错误:'CPLayerHostingView'未声明(第一个在这个函数中使用)
【问题讨论】:
Cocoa Graphing/Plotting Framework that Works on iPhoneOS的可能重复 【参考方案1】:这取决于您的需求。如果您在 y 轴上有固定数量的类别,那么您可以创建三个 UIView,分别为红色、黄色和绿色,然后分别设置宽度。如果您有不同数量的类别/比例,您将需要进行石英绘图,并且可能需要查看图形 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);
【讨论】:
【参考方案2】:您可以使用Core Plot
【讨论】:
【参考方案3】:对于上面编辑的问题,它给出了错误,因为“CPLayerHostingView”是针对 MAC 的。我们需要在 iphone 和 viewDidLoad 方法中使用 'CPTGraphHostingView' .hostedGraph = graph;
【讨论】:
以上是关于如何以编程方式在 iphone 中创建图表的主要内容,如果未能解决你的问题,请参考以下文章