補(bǔ)充知識(shí)
K線雖然看上去復(fù)雜鬼譬,但仔細(xì)觀察就會(huì)知道幾乎所有的k線無非由以下幾種組成:
(1)蠟燭
蠟燭
(2)OHLC
OHLC
(3)線段
線段
(4)帶狀
帶狀
(5)圓形
圓形
除此之外還有其他的夺克,都是比較少見的嘀粱。
蠟燭繪制
補(bǔ)充了一點(diǎn)知識(shí)后提针,我們來進(jìn)入主題攒暇。繪制上述所說的第一種海雪,蠟燭锦爵。如果不懂什么是蠟燭,點(diǎn)這里補(bǔ)一下基礎(chǔ)知識(shí)奥裸。
首先來分解蠟燭险掀,其實(shí)它是由一個(gè)長(zhǎng)方形加上兩根線段(如果長(zhǎng)方形是非空心的話,就是一根)湾宙。長(zhǎng)方形是由開盤價(jià)坐標(biāo)點(diǎn)樟氢、收盤價(jià)坐標(biāo)點(diǎn)計(jì)算生成冈绊,線段是由最高價(jià)坐標(biāo)點(diǎn)、最低價(jià)坐標(biāo)點(diǎn)連接而成埠啃。
所以代碼邏輯也就很簡(jiǎn)單了:
- 繪制一個(gè)長(zhǎng)方形(實(shí)心)
- 然后再繪制一條線段
OK死宣!上代碼:
/**
生成蠟燭Layer
@param model 蠟燭坐標(biāo)模型
@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;
//判斷漲跌來設(shè)置顏色
if (isRed)
{
//漲,設(shè)置紅色
layer.strokeColor = [UIColor redColor].CGColor;
layer.fillColor = [UIColor redColor].CGColor;
} else
{
//跌霸妹,設(shè)置綠色
layer.strokeColor = [UIColor greenColor].CGColor;
layer.fillColor = [UIColor greenColor].CGColor;
}
return layer;
}
代碼效果如下:
蠟燭
剩下的幾個(gè)圖形十电,我們會(huì)再下一篇中進(jìn)行介紹,點(diǎn)這里傳送叹螟。
最后把Demo獻(xiàn)上鹃骂,點(diǎn)擊下載。