1. 程式人生 > >IOS端K線系列之K線-繪製蠟燭圖

IOS端K線系列之K線-繪製蠟燭圖

k線系列目錄

檢視目錄請點選這兒

補充知識

K線雖然看上去複雜,但仔細觀察就會知道幾乎所有的k線無非由以下幾種組成:

(1)蠟燭

蠟燭

(2)OHLC

OHLC

(3)線段

線段

(4)帶狀

帶狀

(5)圓形

圓形

除此之外還有其他的,都是比較少見的。

蠟燭繪製

補充了一點知識後,我們來進入主題。繪製上述所說的第一種,蠟燭。如果不懂什麼是蠟燭,點這裡補一下基礎知識。

首先來分解蠟燭,其實它是由一個長方形加上兩根線段(如果長方形是非空心的話,就是一根)。長方形是由開盤價座標點、收盤價座標點計算生成,線段是由最高價座標點、最低價座標點連線而成。

所以程式碼邏輯也就很簡單了:

  1. 繪製一個長方形(實心)
  2. 然後再繪製一條線段

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獻上,點選下載。