zoukankan      html  css  js  c++  java
  • ios-charts(swift2.3) 引入到自建工程(xcode7.3.1,swift2.3, OC)中

    项目工程和相关移植链接参见:

    1. http://www.cnblogs.com/wanghuaijun/p/5587746.html#3618790

    2. http://www.jianshu.com/p/b2570953d95c

    3. http://www.cnblogs.com/gaox97329498/p/4734917.html

    4. 手动创建bridging header文件x-Bridging-Header.h

    http://www.jianshu.com/p/27b9ff63ab6f 
    5. ios的绝对路径和相对路径
    http://www.cnblogs.com/muyushifang07/p/4460688.html

    一、下载Charts框架

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

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

    1. 新建工程

    新建工程,取名为ImportChartsDemo.

    2.复制Charts整个文件和Masonry文件夹到ImportChartsDemo工程目录中

     3.导入Charts.xcodeproj到工程中

         将Charts文件夹中的Charts.xcodeproj工程文件导入到ImportChartsDemo工程中,注意导入的是Charts.xcodeproj工程,而不是Charts文件夹(利用File/Add File to "xxx"加入Charts.xcodeproj,这样会把工程中的所有文件和目录引入工程 ),如下图:

    4. 在自己的工程中建立分组Masonry("右键"-New Group),将自己工程中的Masonry文件夹的文件全部拖入该分组

    5.添加Charts.framework

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

    Embedded Binaries位置

    添加的iOS的framework,如下图:


                    添加 Charts.framework

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

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

     

    建立桥接文件


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


    自动生成的桥接文件

    如果未自动创建x-Bridging-Header.h,则手动创建bridging header "x-Bridging-Header.h"。然后需要进入 YourTarget -> Build Settings -> Swift Compiler-Code Generation 这个设置项里面,把你的 .h 文件的【路径】(例如,$(SRCROOT)/x/x-Bridging-Header.h,$(SRCROOT)为工程所在文件路径)输入到 Objective-C Bridging Header 里面。

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

    1.设置编译选项

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


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

    如下图:


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

    如下图:


    引入头文件

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

    4. 如果出现类似  The file “XXX.app” couldn’t be opened because you don’t have permission to view it.的错误

    造成的原因:

      info文件中的字段Executable file 与 build settings栏中的Packaging中的Product Name 不一致就会导致上述截图的问题

    解决办法:

      将info.plist的文件中的Executable.file中的文件修改为:$(PRODUCT_NAME)

      修改之前

      

    修改之后:

      

    五、测试

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

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

    运行效果如下:


    运行结果

    由于没有给数据,所以显示的是No chart date aviailable.
    至此,集成Charts完毕!

  • 相关阅读:
    更新Centos 8 内核
    Docker安装
    微服务学习实战笔记 4.1-系统部署篇-Centos 8 下 安装配置K8S
    安装supervisor
    微服务学习实战笔记 4.2-系统部署篇-搭建 Harbor 镜像仓库服务器
    SRS流媒体服务器安装
    微服务学习实战笔记 1.1-系统架构篇-技术选型
    .Net Core 3.0 使用 Serilog 把日志记录到 SqlServer
    IdentityServer4 自定义授权模式
    IdentityServer4 保护.net framework webapi
  • 原文地址:https://www.cnblogs.com/xinjie/p/6402328.html
Copyright © 2011-2022 走看看