iOS在OC项目中集成Charts绘制图表框架

作者: jianshu_wl | 来源:发表于2016-06-10 02:02 被阅读14238次

Charts以一款用于绘制图表的框架,可以绘制柱状图、折线图、K线图、饼状图等. 由于Charts只有Swift版本,所以在这里详细的讲一下在OC项目中怎么导入Charts框架,下面开始一步一步做!

一、下载Charts框架

下载地址:https://github.com/danielgindi/Charts.
解压后的文件夹里面的内容是这个样子的,如下图:

解压后的文件夹里面的内容

下载完成后,仔细看一下所需环境,很重要!如下图:

所需的配置环境

二、新建工程,导入Charts.xcodeproj工程

1.新建工程

新建工程,取名为ImportChartsDemo.

2.复制Charts整个文件到ImportChartsDemo工程中

Charts在哪里?在这里,如下图:

`Charts`文件位置

然后把Charts文件复制到ImportChartsDemo工程中去,如下图;

复制 `Charts`整个文件到 `ImportChartsDemo`工程中
3.导入Charts.xcodeproj工程

Charts文件夹中的Charts.xcodeproj工程文件导入到ImportChartsDemo工程中,注意导入的是Charts.xcodeproj工程,而不是Charts文件夹,如下图:

导入`Charts.xcodeproj`工程
4.添加Charts.framework

找到General->Embedded Binaries,点击+号添加Charts.framework,如下图:

Embedded Binaries位置

添加的iOS的framework,如下图:

添加 `Charts.framework`

三、建立OC和Swift的桥接文件

ImportChartsDemo工程中新建一个Swift文件,名字随便取,这时候会提示是否建立桥接文件,直接选Create Bridging Header选项,如下图:

建立桥接文件

新建完成后,会自动生成一个桥接文件,如下图:

自动生成的桥接文件

四、设置编译选项及引入Charts

1.设置编译选项

找到Build Settings -> Embedded Content Contains Swift Code 选项,设置为Yes,如下图:

设置编译选项
2.在桥接文件中引入Charts

如下图:

引入` Charts`
3.在ViewController.m中引入相关头文件

如下图:

引入头文件

引入完成之后,编译一下,如果有错,Clean一下再次编译,编译没有错误说明导入成功.

五、测试

ViewController.m中进行测试,代码如下:

BarChartView *chatView = [[BarChartView alloc] initWithFrame:CGRectMake(10, 100, 300, 300)];
[self.view addSubview:chatView];

运行效果如下:

运行结果

由于没有给数据,所以显示的是No chart date aviailable.
至此,集成Charts完毕!
Demo地址:https://coding.net/u/wanglei123/p/ImportChartsDemo/git.

相关文章

网友评论

  • 凌云幽雨:有尝试过混合图中基于基准线的开发吗?
  • Evyn_:怎么按照百度下来的集成方法不行啊 Charts.frameworkIOS找不到,只有MAC os的framework。我用的是xcode 9 oc的项目
  • 167f0de71379:用xcode9 打开你的demo 有上百条错误 是swift版本的问题吗
    Evyn_:@鱼丸粗面pyy 我也遇到这个
  • 4999f4b4f3c4:请问如何使用啊?有没有demo
  • 天行哥:集成之后项目包变得很大,怎么缩小
  • c68721ff95f0:我使用xcode8.2的下载下来打开总是出现错误,哪位大神知道是怎么回事吗
  • e6c8b2ad9061:有demo代码?
  • YYSheng:作者还在吗?文档该跟新了,现在下载的Charts文档目录跟教程里面不一样了
  • pc_He:我按照操作一步一步的但是没有找到你引入的第二个头文件#import "ImportChartsDemo-Swift.h"这个,demo运行也是报错,错误如下 “Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift Syntax…] menu to choose a Swift version or use the Build Settings editor to configure the build setting directly.
    我已近更新到xcode8.2.1了.编译都报错,这个这么解决
    Evyn_:@泛黄的落叶 请问你解决了吗?能否说一下
  • 狐狸_Fox:你好,加入进去之后说有一个是要9.3的,系统在9.3之前就报如下错误:module file's minimum deployment target is ios9.3 v9.3: /Users/huzhongli/Library/Developer/Xcode/DerivedData/APPTUTTi-bwyaleibnlzpmkdzfvxfsliflnqb/Build/Products/Debug-iphoneos/Charts.framework/Modules/Charts.swiftmodule/arm64.swiftmodule,请问怎么解决?
  • c283c3608353:请问Xcode8.1要怎么集成这个框架?为什么会报错,提示需要转成swift3,但是转了之后还是一样错
    1c7d043302da:@ZZC1 你搞好了么,我这边找不到embedded content...swift
  • 二进制人类:这东西导入项目后体积增大太多,有没有只导入部分的办法啊,我只用折线和饼状图
    天行哥:同问,你解决没有
  • fd565ceeb15b:问下 饼图的数据怎么设置的?
  • d869baafcf5b:xcode8后报错 module file's minimum deployment target is ios9.3 v9.3,最低支持9.3怎么回事
  • carrot__lsp:xcode8.1按照楼主的方法,办不到啊....求赐教一下.谢谢啦.
    1c7d043302da:@carrot__lsp 我这边找不到embedded content...swift,在桥接的文件中@import Charts也有报错
    d869baafcf5b:@carrot__lsp 你现在没遇到只能支持9.3以上的问题么
    carrot__lsp:@carrot__lsp 谢谢楼主思路.....貌似可以啦.需要的同学,可以看我的文章,粗糙集成.借用楼主的格式.感谢.如果不许,可以删除.
  • 提点九路节度使:楼主,可不可以写一个最新的集成方案,现在这个有点老了,好多错误,我改了好多还是错误的,谢谢楼主
  • d41e73bbc1f3:楼主,在Xcode7.3中可以运行,升级Xcode到8.0之后再次运行工程,显示swift文件有错误怎么解决啊?
  • 提点九路节度使:xcode 8.0 导入和这个一样吗
  • Leolijie:你好,楼主 我有个问题,看文档介绍后,是不是 OC 项目需要你这么做,但是如果是 Swift 项目的话,直接用 pod Charts 的方式就可以了?
  • 陈江红:你好,你的demo运行报错,我这边导入的话找不到对应iOS的Charts.xcodeproj文件,所以找不到对应iOS的charts.framework
  • 禅牧:楼主,可不可以写一个最新的集成方案,现在这个有点老了,好多错误,我改了好多还是错误的,谢谢楼主
  • 丶Destinyxl:桥文件未找到是什么原因?
  • 三岁就喜欢学习:升级ios10 你有使用这个吗? 好像有很多问题
    呵呵哈哈嘿嘿:如何用cocopods引用?好像会有好多报错
    三岁就喜欢学习:@禅牧 解决了
    禅牧:@张无忌666 你好,你的折线图写了吗?iOS10之后错误好多,你是怎么解决的?
  • 一抹相思泪成雨:打包 包证书错误 应该怎么选?》
  • listen_blue:#import "ImportChartsDemo-Swift.h"


    楼主...这个文件在哪里???
    HJD:@listen_blue 系统自动生成不能自己生成,所以看不到的
    Leolijie:@listen_blue 我也想问
  • 0206b277d36d:git上下载下来的有些属性没有呢 。。我看版本号都是一样的 请问下这是什么原因呢
  • 朱凯奇:cocoaPods导入 不需要这么繁琐的配置的
    朱凯奇:@华丽不是残影 少写一句话
  • huainanzi:您好。能具体的说明下支持ios7的具体步骤吗

    yleson:@冬少520 能解决吗请问?
  • 中二柱子:您好, 我导入这个第三方了,也能正常使用,但是在打包ipa的时候,有两个错,
    module charts not found
    还一个是 桥文件未找到,怎么解决啊
    中二柱子:@中二柱子 加在哪里?
    44b811bc27de:@中二柱子 导入 #import "XXX-Bridging-Header.h" 就可以打包了
    44b811bc27de:@中二柱子 你好 我也遇见了这个问题 请问你解决了吗?
  • JoyGY:楼主请教一下,怎么设置x轴底部的坐标的显示不是居中显示的呀,这样有的时候第一个会显示的不全
  • goforitforgo:弄过图表联动嘛?
  • goforitforgo:利用pod导入过吗?
    goforitforgo:@夜未惊 会出问题的,已有的pod框架尖角号都要改成双引号。
    goforitforgo:@夜未惊 这样导入打的包大了25m。
    jianshu_wl:@夜未惊 pod 'Charts'
  • 提点九路节度使:您好, 我导入这个第三方了,也能正常使用,但是在打包ipa的时候,有两个错,
    module charts not found
    还一个是 桥文件未找到,怎么解决啊
    提点九路节度使:@中二柱子 额(︶︹︺)木有解决
    中二柱子:@提点九路节度使 我也是这个问题 解决了吗?@jianshu_wl
    提点九路节度使:@提点九路节度使 @jianshu_wl
  • 贵叔勇闯天涯:我在新建Swift文件的时候没有提示我创建桥接文件?怎么办?
  • 3f4759cf0583:已解决了,THX !!
    yleson:@华丽不是残影 能解决吗?
  • 3f4759cf0583:如何才能支持iOS7.0呢?按照下面的做法,还是编译报错诶...
    If you want to compile for iOS 7:
    1、Drag the code itself (.swift files) to your project. As sadly, Swift currently does not support compiling Frameworks for iOS 7.
    2、Make sure that the files are added to the Target membership.
    yleson:@jianshu_wl @jianshu_rk 求问7.0步骤,搞懵了一天 求大神帮帮忙
    jianshu_wl:@jianshu_rk 把swift 文件拖进去,不要拖工程,看提示:smile:
  • 27bba2520ac9:意思是最低只能支持8.0??
  • 酷哥不回头看爆炸:我用svn 提交之后chart 那个工程变红色是为什么啊?
  • 改个假名稳当点:如果用的xcode7.1怎么办呢?
    改个假名稳当点:@jianshu_wl 哈哈,谢谢,我看到后面的评论也发现了,升级版本杠杠的实现了效果,好文章:+1::+1::+1:
    jianshu_wl:@改个假名稳当点 升级Xcode :smile:
  • o_Cooper_o:是不是要Xcode7.3 才行
    o_Cooper_o:@林华谢春红 嗯呢
    32c0a3e504c2:7.3以上也可以的吧?
    jianshu_wl:@寄忧谷 嗯嗯
  • cw0925:按照你的步骤走的,在桥接文件报找不到引入的文件,demo也是这个错误
    cw0925:@倚枕不寻柯下梦丶 升级xcode到7.3就好了
    酷哥不回头看爆炸:@cw0925 你解决了吗?
    jianshu_wl:@cw0925 没有错误的,检查一下Xcode版本,不行再Clean一下,我这里是没错的。

本文标题:iOS在OC项目中集成Charts绘制图表框架

本文链接:https://www.haomeiwen.com/subject/wuqsdttx.html