查看目录请点击这儿
K线虽然看上去复杂,但仔细观察就会知道几乎所有的k线无非由以下几种组成:
(1)蜡烛
(2)OHLC
(3)线段
(4)带状
(5)圆形
除此之外还有其他的,都是比较少见的。
补充了一点知识后,我们来进入主题。绘制上述所说的第一种,蜡烛。如果不懂什么是蜡烛,点这里补一下基础知识。
首先来分解蜡烛,其实它是由一个长方形加上两根线段(如果长方形是非空心的话,就是一根)。长方形是由开盘价坐标点、收盘价坐标点计算生成,线段是由最高价坐标点、最低价坐标点连接而成。
所以代码逻辑也就很简单了:
绘制一个长方形(实心)然后再绘制一条线段OK!上代码:
/** 生成蜡烛Layer @param model 蜡烛坐标模型 @return 返回layer */ + (CAShapeLayer *)getCandleLayerWithPointModel:(YKCandlePointModel *)model { //判断是否为涨跌 BOOL isRed = model.oPoint.y >= model.cPoint.y ? YES : NO; //生成柱子的rect CGRect candleFrame = CGRectMake(isRed ? model.cPoint.x - 6 : model.oPoint.x-6,isRed ? model.cPoint.y : model.oPoint.y,12,ABS(model.oPoint.y - model.cPoint.y)); UIBezierPath *path = [UIBezierPath bezierPathWithRect:candleFrame]; //绘制上下影线 [path moveToPoint:model.lPoint]; [path addLineToPoint:model.hPoint]; CAShapeLayer *layer = [CAShapeLayer layer]; layer.path = path.CGPath; //判断涨跌来设置颜色 if (isRed) { //涨,设置红色 layer.strokeColor = [UIColor redColor].CGColor; layer.fillColor = [UIColor redColor].CGColor; } else { //跌,设置绿色 layer.strokeColor = [UIColor greenColor].CGColor; layer.fillColor = [UIColor greenColor].CGColor; } return layer; }代码效果如下:
剩下的几个图形,我们会再下一篇中进行介绍,点这里传送。
最后把Demo献上,点击下载。
