首先祭出此控件的网站https://github.com/kevinzhow/PNChart;

最近公司的项目中有使用到原生的柱状图,然而自己封装的图在大量数据面前竟然怂了,一划一卡,如此的不流畅,对于一个处女座的iOS程序员来说是很糟心的事情啊。索性在网上搜索了会发现两个不错的图标框架,Charts和PNChart前者适合Swift(当然也可以将它桥接到OC,不过个人感觉这样的方法很鸡肋)后者有Swift和OC版。那当然选择后者啦。 下面开始导入此框架 方法一:简单暴直接 pod install 具体方法参照github上的说明 方法二:手动导入,此处有点坑,当我习惯性的将PNChart-master解压后其中的中的PNChart拖到工程中时。编译。。。竟然报错:主要是#import"PNRadarChartDataItem.h"中的问题于是乎搜索了一番找到了个解决方案:首先登陆全球最大的同性交友网站github搜索到UICountingLabel解压后把UICountingLabel的.m和.h文件拖入工程然后 把报错的#import<UICountingLabel/UICountingLabel.h>头文件换为#import"UICountingLabel.h"再次编译,完全没有问题。 开始使用: 首先当然是引入头文件啦,在需要用到图表的地方引入#import"PNChart.h" 然后参照官方的demo

 self.barChart = [[PNBarChart alloc] initWithFrame:CGRectMake(0, 135.0, SCREEN_WIDTH, 200.0)];
//        self.barChart.showLabel = NO;self.barChart.yLabelFormatter = ^(CGFloat yValue) {return [barChartFormatter stringFromNumber:@(yValue)];};self.barChart.yChartLabelWidth = 20.0;self.barChart.chartMarginLeft = 30.0;self.barChart.chartMarginRight = 10.0;self.barChart.chartMarginTop = 5.0;self.barChart.chartMarginBottom = 10.0;self.barChart.labelMarginTop = 5.0;self.barChart.showChartBorder = YES;[self.barChart setXLabels:@[@"2", @"3", @"4", @"5", @"2", @"3", @"4", @"5"]];
//       self.barChart.yLabels = @[@-10,@0,@10];
//        [self.barChart setYValues:@[@10000.0,@30000.0,@10000.0,@100000.0,@500000.0,@1000000.0,@1150000.0,@2150000.0]];[self.barChart setYValues:@[@10.82, @1.88, @6.96, @33.93, @10.82, @1.88, @6.96, @33.93]];[self.barChart setStrokeColors:@[PNGreen, PNGreen, PNRed, PNGreen, PNGreen, PNGreen, PNRed, PNGreen]];self.barChart.isGradientShow = NO;self.barChart.isShowNumbers = NO;[self.barChart strokeChart];self.barChart.delegate = self;[self.view addSubview:self.barChart];
复制代码

然而当运行出来时发现 X坐标呢? X坐标的数据去哪了 找了找发现是demo中的self.barChart.labelMarginTop = 5.0;问题,修改即可。

随后将控件正式封装到工程中 然而

这是什么鬼 还能不能快乐的玩耍了 不就是多了几条数据吗 找了找发现没有让图标滑动的方法于是加了一个UIScrollView 然而X轴和Y轴的数据呢当然是是需要处理下啊 开始很笨的写了一个方法 将X轴的数组每隔3个放入一个时间数据,的确没有问题,但是Y轴呢,会动将空的字符串转为0 于是乎还是一样的丑 随后百度了一番并没有想要的结果只好苦逼的在PNBarChart中搜寻,这对于一个英语不是强项的人来说很蛋疼。 不过好在找到了 self.barChart.yLabelSumY轴显示多少个标签 self.barChart.xLabelSkipX轴间隔多少个显示 这两个方法就很人性化了 修饰过后顿时感觉好看多了

一个流畅的iOS图表框架PNChart相关推荐

  1. iOS - 常用的iOS Mac框架和库以及常用的中文开发博客

    对于iOS以及Mac开发中常用到的一些框架,以及比较好的技术博客做了总结: 主要内容如下: UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关 隐藏与显示 HUD与Toast 对话框 ...

  2. 常用的iOS第三方框架

    转载自:https://github.com/Tim9Liu9/TimLiu-iOS 目录 UI 下拉刷新 模糊效果 AutoLayout 富文本 图表 表相关与Tabbar 隐藏与显示 HUD与To ...

  3. iOS开源框架和项目总结

    github上关于iOS的各种开源项目集合(转) .entry-header UI 下拉刷新 EGOTableViewPullRefresh - 最早的下拉刷新控件. SVPullToRefresh  ...

  4. 移动周刊第 178 期:iOS 开源框架、项目和学习资料汇总

    写在前面 本期移动周刊第 178 期如约而至,聚焦 Android.iOS.VR/AR/MR.直播等前沿移动开发技术,收录一周最热点,解读开发技巧,我们希望从中能够让你有一些收获,如果你有好的文章以及 ...

  5. 写一个android图表框架1

    前言 在两年前,做过一个几乎全部是图表展示的App,当时真是一脸懵逼.找来找去找到了MpAndroidChart这个框架,在使用这个框架一个多月的时间里面,对Canvas慢慢的认识了,后面接触Html ...

  6. iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序

    iOS游戏框架Sprite Kit基础教程第1章编写第一个Sprite Kit程序 程序是为了实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.本章将以编写第一个Sprite Kit程序为 ...

  7. 开源 | 如何实现一个iOS AOP框架?

    简介:Aspect使用了OC的消息转发流程,有一定的性能消耗.本文作者使用C++设计语言,并使用libffi进行核心trampoline函数的设计,实现了一个iOS AOP框架--Lokie.相比于业 ...

  8. 又一个高性能轻量级的iOS模型框架YYModel

    前言 iOS的模型框架其实有很多了,去年研究过Mantle,也了解过JSONModel.MJExtension,最近的项目项目优化的时候,再次考虑,基于轻量级.高性能的考虑,最终选择了YYModel. ...

  9. 详解OS X和iOS图像处理框架Core Image

     详解OS X和iOS图像处理框架Core Image width="22" height="16" src="http://hits.sinaj ...

最新文章

  1. 易想团购 注入 user.php,易想团购系统通杀SQL注入漏洞分析及利用漏洞预警 -电脑资料...
  2. 一起谈.NET技术,自动更新组件分享
  3. python个人项目-Python个人练习项目 2-1
  4. JFace中的表格型树TableTreeViewer
  5. debian与cenos常见命令不同处
  6. matlab dsp实验报告,matlab实验报告14.pdf
  7. JavaScript 命名空间
  8. 如何从数据框的单元格获取值?
  9. 编写通用计算机代码,计算机源代码编写规范(VB版本).doc
  10. iOS 解决:调用系统相册、相机是英文状态。
  11. 湖南对口升学计算机专科学院,湖南省计算机对口升学的大学有哪些
  12. 3分钟配置zabbix 监控mysql
  13. 第四次作业——肖祥英
  14. 几种开源分词工具的比较
  15. 网页控制台控制视频倍速
  16. python扫雷游戏设计_Python 扫雷游戏 完整源代码+图片素材
  17. 接口测试 | 接口测试入门
  18. 医药知识图谱项目搭建注意事项(QASystemOnMedicalKG)
  19. linux 进阶命令笔记(12月26日)
  20. 基于yolov5的火焰+烟雾识别

热门文章

  1. Android Input系统之触摸屏
  2. ADMT3.2迁移域用户
  3. mysql的主从复制原理与实现
  4. linux mysql忘记root密码
  5. 图像验证码识别(七)——字符分割
  6. codeforces水题100道 第十一题 Codeforces Round #143 (Div. 2) A. Team (brute force)
  7. 集合 判断是否为同一元素 总结
  8. 每日英语:China's New Anti-Graft Website: A Tale of Tigers, Flies and Bath Tubs
  9. 将mnist数据集存储到本地文件
  10. 动态的根据一个资源名获得到对应的资源id