CorePlot升级到1.0了,试用了一下,感觉功能和稳定性上都有了较大提升。所以专门写了几篇 1.0 的试用体验。
1. 编译 CorePlot 框架
首先需要下载Core Plot框架。
你可以在这里找到 1.0版本 Core Plot 的下载链接:
http://code.google.com/p/core-plot/downloads
下载后文件名为:CorePlot_1.0.zip。解压缩,即可得到 Core Plot框架的SDK及示例项目。
Core Plot SDK 以静态库的方式提供,我们需要编译成.a静态库文件。打开解压缩目录的 Source/framework/ 目录,有两个Xcode项目: CorePlot-CocoaTouch.xcodeproj 和CorePlot.xcodeproj。前者是iOS SDK,后者是 OSX SDK。双击 CorePlot-CocoaTouch.xcodeproj ,用Xcode 打开。点击 Run,即可在 Source/build 目录下编译出 CorePlot-CocoaTouch.a 文件。
提示:如果你不想自己编译 Core Plot SDK 静态库,在解压缩目录 “Binaries/iOS/CorePlotHeaders”目录中已经提供了一个现成的CorePlot-CocoaTouch.a 文件。
2. 使用 Core PlotSDK
编译好的静态库(.a文件),你要以静态库的方式链接到工程中。新建项目,执行以下步骤:
1、将解压缩目录中“Binaries/iOS/CorePlotHeaders”目录下的所有头文件拖到你的Xcode项目中。
2、将 .a 文件拖到你的项目中。
3、在Target的Build Settings设置中,找到Other Linker Flags,加入“ObjC -all_load”。
4、往工程中加入QuartzCore框架。
注意:如果你在编译项目时遇到错误“Command/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exitcode 1”,请将 Scheme 从 iOS Device 改为 iPhone 5.0 Simulator。或者将Compiler for C/C++ 改为LLVM GCC 4.2。同时,Core Plot 1.0 不再支持老的 armv6 CPU。
接下来我们运行 Core Plot SDK中的一个散点图的例子,演示如何在工程中使用Core Plot SDK。
将解压缩目录的 Source/examples/CPTTestApp-iPhone/Classes 目录下的CPTTestAppScatterPlotController.m和 CPTTestAppScatterPlotController.h 文件拖到Xcode项目中。
在你的view controller的.xib中,拖入一个 Object 对象,将 Identifier 改成CPTTestAppScatterPlotController。这样是为了从.xib中创建一个CPTTestAppScatterPlotController 实例。将.xib中的 View 对象的Identifier 改成CPTGraphHostingView。这是因为 CPTGraph 必须放在 CPTGraphHostingView 对象中。
图 1 将 View 对象的类型改为CPTGraphHostingView
连接 GraphHosting View 对象到 Test App Scatter Plot Controller 的 view 出口上。
运行程序,如图 2 所示。
图 2 运行程序
但程序还有一个Bug需要解决。此时如果你拖动图表,程序将出现EXEC_BAD错误并崩溃。我们需要自己持有 Test App Scatter PlotController 对象。最简单的办法,是在view controller中创建一个出口,并连接到 Test App Scatter PlotController 对象。再次运行程序,你就可以拖动或缩放图表了。