iOS-Charts的使用

匿名 (未验证) 提交于 2019-12-03 00:26:01

填充数据

定义了表格的基本属性之后我们就要填充数据了。在这里我仅以折线图表为例。

我们先介绍两个概念:set和data,LineChartData就是折线图的data类,它可以由很多组set组成,一组就是一条折线。因此我们可以定义set的属性,从而绘制各种各样的折线。示例如下:

//是否绘制图标

set1.drawIconsEnabled = NO;

//折线颜色

[set1 setColor:UIColor.blackColor];

//折线点的颜色

[set1 setCircleColor:UIColor.blackColor];

//折线的宽度

set1.lineWidth = 1.0;

//折线点的宽度

set1.circleRadius = 3.0;

//是否画空心圆

set1.drawCircleHoleEnabled = NO;

//折线点的值的大小

set1.valueFont = [UIFont systemFontOfSize:9.f];

//图例的线宽

set1.formLineWidth = 1.0;

//图例的字体大小

set1.formSize = 15.0;

下面具体介绍如何填充数据:

//定义一个数组承接数据

//对应Y轴上面需要显示的数据

以上就是填充数据的基本方法。到这里,大家就已经掌握了用charts绘制图表的基本方法了。下面我们来看一下一些比较难的用法。

重难点解析

需求一:两个表格联动,即拖拽或者一个,另一个需要跟着动。

这个需求可以用协议解决:

- (void)chartScaled:(ChartViewBase *)chartView scaleX:(CGFloat)scaleX scaleY:(CGFloat)scaleY {

CGAffineTransform srcMatrix = chartView.viewPortHandler.touchMatrix;

[self.combinedChartView.viewPortHandler refreshWithNewMatrix:srcMatrix chart:self.combinedChartView invalidate:YES];

[self.barChartView.viewPortHandler refreshWithNewMatrix:srcMatrix chart:self.barChartView invalidate:YES];

}

- (void)chartTranslated:(ChartViewBase *)chartView dX:(CGFloat)dX dY:(CGFloat)dY {

CGAffineTransform srcMatrix = chartView.viewPortHandler.touchMatrix;

[self.combinedChartView.viewPortHandler refreshWithNewMatrix:srcMatrix chart:self.combinedChartView invalidate:YES];

[self.barChartView.viewPortHandler refreshWithNewMatrix:srcMatrix chart:self.barChartView invalidate:YES];

}

需求二:在一个图表上绘制多种类型的线表,例如K线图+柱状图

这个需求会用到另一个ChartView类型:CombinedChartView

CombinedChartData *combinedData = [[CombinedChartData alloc] init];

combinedData.lineData = [self generateLineData];

combinedData.candleData = [self generateCandleData];

需求三:希望在X轴上显示出具体的数值

我刚才说过,绘制表格的时候X值是i的值,即从0到i,那么我们如何显示服务器给我们的X值呢?这里需要引入一个协议:IChartAxisValueFormatter,声明一个NSObject类,如BTCDepthXAxisFormatter遵循IChartAxisValueFormatter协议,重写-(NSString *)stringForValue:(double)value axis:(ChartAxisBase *)axis方法,然后进行赋值,xAxis.valueFormatter = [[BTCDepthXAxisFormatter alloc] init]即可。

至此,iOS-Charts的基本用法就介绍完了,如果还有不理解的问题,可以加我的微信(justlikeitRobert),欢迎Star,作为对我码字的鼓励与奖赏。

原文链接:http://www.cocoachina.com/ios/20180209/22232.html

文章来源: iOS-Charts的使用
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!