利用CocoasPod在Swift项目中使用CorePlot

最近在研究可用的第三方的图标控件,然后网上搜了之后,感觉功能比较强大的就是CorePlot了,于是就开始研究如何部署到程序中。网上关于这方面的教程比较少,大部分都是objective-c的,而且历史也比较久远,后来找到一篇老外写的blog,讲述在swift中如何使用CorePlothttp://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

大致会告诉你这样的信息

可以看到最新的CorePlot是1.5.1版本的,也可以看到在github上的源地址。

到这里,cocoapods就安装完成了,接下来我们继续我们的步骤

3.

在终端中 cd到你的swift工程所在的目录,然后执行下面的命令

pod init

如果一切正常,在你的工程目录下,会出现一个文件名字叫做Podfile,这个相当于cocoapods的配置文件,告诉我们在工程中将引入哪些第三方的控件。

接下来是很重要的一个步骤,用vim或者xcode打开并编辑Podfile文件,一定不要直接双击文件打开并编辑,我就是在这上面吃了亏了,搞了好久好久一直提示出错,因为你的textedit会改变原有的一些你肉眼看不出的格式等等。

执行下面的命令用xcode打开并修改podfile

open -a Xcode Podfile

这里是我修改后的文件:

# Uncomment this line to define a global platform for your project
platform :ios, '8.0'

target 'CorePlot' do

pod 'CorePlot', '~> 1.5.1'

end

target 'CorePlotTests' do

end

可以看到在target  CorePlot,就是我们一开始新建的工程下面,我们加入了pod  CorePlot和相应的版本号。

保存并关闭podfile

4.

在终端执行命令:

pod install

又是得耐心地等待一段时间后,会得到下面的结果:

表示我们的corePlot已经安装完成了。

注意最后一行字:

[!] Form now on use 'CorePlot.xcworkspace' .

5. 关闭第一步我们建立的Xcode工程。

回头看一下我们的工程目录,你会发现新建了不少东西,其中有一个叫xxx.xcworkspace
的文件,就是以后我们再打开工程时直接双击的文件了。

我们双击打开工程。

6.

利用我上一篇blog介绍的方法建立xxx-Bridging-Header.h 文件。

就是在我们的工程目录中create一个新的class并选择用objective-c做位语言,这样Xcode会自动帮我们建立桥接头文件,不需要我们手动做操作。

7.

在刚建好的CorePlot-Bridging-Header.h文件中添加:

#import "CorePlot-CocoaTouch.h"

8.

打开storyboard,然后在viewcontroller中再添加进来一个view,这个view将作为我们的coreplot控件的承载view,修改这个view的custom class为
CPTGraphHostingView

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方法中添加进下面这些代码:

<span style="white-space:pre">	</span>//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还能画柱状图、折线图等等,我也刚开始学,一起研究吧。

时间: 2024-08-01 14:17:03

利用CocoasPod在Swift项目中使用CorePlot的相关文章

在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController

你可以完全自己手动写一个侧滑菜单,但是现在在 GitHub 上面已经有很多免费的开源库了,如果不是有很特别的需求,大可不必新建一个轮子. 在这里我使用的这个第三方库名字叫做 SWRevealViewController,作者是 John Lluch.这个免费的类库提供了很方便快捷的方法去把侧滑菜单加入到你的 App 里面,而且它还提供了很多个性化的设置项.它是用 Objective-C 来写的,但是我们也可以很方便的在 Swift 项目中去使用它.你分分钟便可学会如何使用. 首先来看一下我们的

[转]在iOS项目中使用CorePlot框架

转载地址:http://blog.csdn.net/llfjfz/article/details/7849190#comments Core Plot是OS X和IOS下的一个开源图形库,它提供数据的可视化处理,就是画曲线图.柱状图和饼图等等.如何在项目中使用Core Plot的静态库呢?以下是几个步骤: 首先先去Google Code下载Core Plot图形库,网址 http://code.google.com/p/core-plot/ .目前该网址提供了CorePlot_1.0.zip下载

Swift 项目中常用的第三方框架

Swift 项目中可能用到的第三方框架 字数1004 阅读4091 评论17 喜欢93 这里记录下swift开发中可能用的框架 , 最近浏览了不少,积累在这里,以后用的时候方便查阅.顺便推荐给大家! 这里的框架都是纯swift的 , 感谢开源 ,感谢大神们 . 下拉刷新 BreakOutToRefresh 一个下拉刷新打砖块的swift库 SDRefreshView 简单易用的上拉和下拉刷新 ZLSwiftRefresh - 下拉刷新/上拉加载更多,支持自定义动画,集成简单 GearRefres

swift项目中使用OC/C的方法

假如有个OC类OCViewController : UIViewController类里有两个方法 //swift调用oc或c的混编是比较常用的,反过来的调用很少.这里只写了swift调用oc和c的方式.//OC函数声明- (void)testOC;//C函数声明void testc(); 实现:void testc(){  printf("testc.....................");} -(void)testOC{  NSLog(@"\ntestOC.....

利用CocoaPods,在项目中导入AFNetworking类库

场景1:利用CocoaPods,在项目中导入AFNetworking类库 AFNetworking类库在GitHub地址是:https://github.com/AFNetworking/AFNetworking 为了确定AFNetworking是否支持CocoaPods,可以用CocoaPods的搜索功能验证一下.在终端中输入: $ pod search AFNetworking 过几秒钟之后,你会在终端中看到关于AFNetworking类库的一些信息. 这说明,AFNetworking是支持

iOS 中pch文件的使用及利用pch文件消除项目中所有的NSLog函数

在实际的项目中,我们可能需要一些全局的宏定义或者某个文件,并且被反复使用.显然,如果在每个项目文件里都定义一个宏的话,是很费事的,今天我们来介绍一个文件pch文件,只有.h文件. pch文件的作用:对于宏定义而言,相当于一个声明文件,这个文件是全局的.你也可以理解为,他设置完路径之后,被默认导入到项目中的各个文件中.但不能以这为定论,具体的,你自己百度吧. 1,pch文件如何创建 1),在项目中commond+n 选择 other 里面的 红色h文件(下面写着PCH File)点击next为他起

Swift 项目中使用抽屉效果基于MMDrawerController

准备用Swift撸一个项目了, 就用这个样式了. 晚上睡不好了.黑眼圈(- -) 看细节请访问我的githubhttps://github.com/Zhangjingwang1993/SwiftApp 还可以点个Star,给个鼓励. Swift/OC 进阶交流群: 498143780 // AppDelegate.swift var drawer = MMDrawerController() let leftViewController = LeftViewController() let ri

swift项目中嵌入oc

参考资料 需要注意的是  与oc包含swift不同的是  swift包含oc需要在桥接文件中包含要使用的oc的头文件 demo:swiftPlayOc(提取码:37c6)

如何利用go modules 在 项目中 导入包

go modules 是go1.11 推出的官方的依赖管理,废话不多说直接开始 set GO111MODULE=on set GOPROXY=https://goproxy.cn 我的关于go module 的环境变量设置 踩坑:因为我是初学者,go module 并不熟悉,就开始跟着老师后面学 爬虫项目需要利用到 包 golang.org/x/text 老师使用的是 gopm -g -u golang.org/x/text gopm这个软件我并没有,一个用来进行包管理的软件,手动安装失败显示软