IOS端K線系列之K線-繪製蠟燭圖
阿新 • • 發佈:2019-01-09
k線系列目錄
檢視目錄請點選這兒
補充知識
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獻上,點選下載。