作者:霜霜c | 来源:互联网 | 2023-10-11 19:49
最近在研究可用的第三方的图标控件,然后网上搜了之后,感觉功能比较强大的就是CorePlot了,于是就开始研究如何部署到程序中。网上关于这方面的教程比较少,大部分都是objectiv
最近在研究可用的第三方的图标控件,然后网上搜了之后,感觉功能比较强大的就是CorePlot了,于是就开始研究如何部署到程序中。网上关于这方面的教程比较少,大部分都是objective-c的,而且历史也比较久远,后来找到一篇老外写的blog,讲述在swift中如何使用CorePlot(http://blog.alwold.com/2014/08/07/using-coreplot-with-swift-in-ios/),研究了好久,总算成功安装了。下面就一步一步介绍。
1. 建立工程
首先建立一个简单的swift工程,工程名字为CorePlot,记住选择language为swift。这里就不再截图详细说明了,不清楚的同学可以看我的上一篇blog
2. 安装CocoaPods
这里我重点说一下如何安装CocoaPods把,因为安装过程耗费了我好久,而且中间有不少点也鲜有提起。
这里有两篇中文的blog比较不错,都由可取之处,供大家了解CocoaPods是什么。
CocoaPods详解之--使用篇 http://blog.csdn.net/wzzvictory/article/details/18737437
CocoaPods安装和使用教程 http://code4app.com/article/cocoapods-install-usage
关于CocoaPods是什么和它的强大我就不多说了,两篇blog都有介绍,我重点说一下我的安装过程。
1>
打开终端,依次输入下面的命令
gem sources --remove https://rubygems.org/
gem sources -a http://ruby.taobao.org/
这样是为了访问taobao的ruby镜像,因为GFW,在国内没法直接访问cocoapods,所以需要把我们的source设置成taobao的一个镜像网站。注意区分https和http
为了验证ruby镜像 可以输入
gem sources -l
注意是字母 hijk L mn 的L,不是数字1
接下来会显示
*** CURRENT SOURCES ***
http://ruby.taobao.org/
注意,这里面一定只能有一条,如果你的里面仍然有rubygems.org说明没有remove成功,重新试一下上面的命令。
2>
输入下面的命令就开始安装cocoapods
sudo gem install cocoapods
注意,这里输入完成之后,可能需要等一段时间才能开始下载和安装,我当时是等了大概有3分钟才安装完成。
安装执行过程中,会问我吗是不是要更新rake,输入y
3>
安装进程结束之后,执行命令
pod setup
这里有得等2,3分钟的的样子
如果这中间都没有报错,就说明你安装成功了。
可以试一下看看我们待会要安装的coreplot:
pod search CorePlot
大致会告诉你这样的信息
9. 建立outlet
步骤就不画图了,在storyboard中Assistance Editor模式下,ctrl拖拽刚添加的view到viewcontroller.swift文件中,命名为graphView
10.
我们先编译一下工程,shift+commond+B,编译成功之后,可能会有一些警告,我把版本从8.3改成了8.1,因为1.5.1 的coreplot似乎最高支持到8.1
接下来我们在viewDidLoad方法中添加进下面这些代码:
//creat graph
var graph = CPTXYGraph(frame: CGRectZero)
graph.title = "Hello Graph"
graph.paddingLeft = 0
graph.paddingTop = 0
graph.paddingRight = 0
graph.paddingBottom = 0
//hide the axes
var axes = graph.axisSet as CPTXYAxisSet
var lineStyle = CPTMutableLineStyle()
lineStyle.lineWidth = 0
axes.xAxis.axisLineStyle = lineStyle
axes.yAxis.axisLineStyle = lineStyle
//add a pie plot
var pie = CPTPieChart()
pie.dataSource = self
pie.pieRadius = (self.view.frame.size.width * 0.9)/2
graph.addPlot(pie)
self.graphView.hostedGraph = graph
11.
添加datasource delegate,在开头添加代理: CPTPlotDataSource
12.
编辑代理方法:
func numberOfRecordsForPlot(plot: CPTPlot!) -> UInt {
return 4
}
func numberForPlot(plot: CPTPlot!, field fieldEnum: UInt, recordIndex idx: UInt) -> NSNumber! {
return idx+1
}
整个viewController.swift 看起来是这样的
import UIKit
class ViewController: UIViewController,CPTPlotDataSource {
@IBOutlet weak var graphView: CPTGraphHostingView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//creat graph
var graph = CPTXYGraph(frame: CGRectZero)
graph.title = "Hello Graph"
graph.paddingLeft = 0
graph.paddingTop = 0
graph.paddingRight = 0
graph.paddingBottom = 0
//hide the axes
var axes = graph.axisSet as CPTXYAxisSet
var lineStyle = CPTMutableLineStyle()
lineStyle.lineWidth = 0
axes.xAxis.axisLineStyle = lineStyle
axes.yAxis.axisLineStyle = lineStyle
//add a pie plot
var pie = CPTPieChart()
pie.dataSource = self
pie.pieRadius = (self.view.frame.size.width * 0.9)/2
graph.addPlot(pie)
self.graphView.hostedGraph = graph
}
// dataSource delegate
func numberOfRecordsForPlot(plot: CPTPlot!) -> UInt {
return 4
}
func numberForPlot(plot: CPTPlot!, field fieldEnum: UInt, recordIndex idx: UInt) -> NSNumber! {
return idx+1
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
接下来就运行一下你的程序,就能看到一个pie被画在了屏幕上
利用CorePlot还能画柱状图、折线图等等,我也刚开始学,一起研究吧。
利用CocoasPod在Swift项目中使用CorePlot