畫一根線
image.png
- (void)drawLine:(CGRect)rect{
CGContextRef context = UIGraphicsGetCurrentContext();
// 設置背景填充顏色
CGContextSetFillColorWithColor(context, [UIColor grayColor].CGColor);
CGContextFillRect (context, self.bounds); // 填充范圍
// 畫線段
CGPoint p1 = CGPointMake(20, 20);
CGPoint p2 = CGPointMake(rect.size.width - 20, rect.size.height - 60);
//線框寬
CGContextSetLineWidth(context, 1.0f);
//線框顏色
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
//畫筆移動到該點開始畫線
CGContextMoveToPoint(context, p1.x, p1.y);
CGFloat dash[] = {1,3};
CGContextSetLineDash(context, p1.x, dash, p1.y);
//畫直線到該點
CGContextAddLineToPoint(context, p2.x, p2.y);
//直接在圖形上下文中渲染路徑
CGContextStrokePath(context);
}
蠟燭圖 空心
image.png
代碼
- (void)drawChartLine:(CGRect)rect{
CGPoint p1 = CGPointMake(100, 30);
CGPoint p2 = CGPointMake(100, 70);
CGPoint p3 = CGPointMake(100, 120);
CGPoint p4 = CGPointMake(100, 170);
CGContextRef context = UIGraphicsGetCurrentContext();
//線框顏色
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
//線框寬
CGContextSetLineWidth(context, 1.0);
// 畫筆移動到該點開始畫線 p1 -> p2線段
CGContextMoveToPoint(context, p1.x, p1.y);
CGContextAddLineToPoint(context, p2.x, p2.y);
// p3 -> p4線段
CGContextMoveToPoint(context, p3.x, p3.y);
CGContextAddLineToPoint(context, p4.x, p4.y);
//直接在圖形上下文中渲染路徑
CGContextStrokePath(context);
// 中間實體邊框 空心 畫 方框矩形
CGContextStrokeRect(context, CGRectMake(100 - 14 / 2.0, p2.y, 14, p3.y - p2.y));
}
蠟燭圖 實心
image.png
代碼
CGPoint p1 = CGPointMake(100, 30);
CGPoint p2 = CGPointMake(100, 70);
CGPoint p3 = CGPointMake(100, 120);
CGPoint p4 = CGPointMake(100, 170);
CGContextRef context = UIGraphicsGetCurrentContext();
//線框顏色 設置描邊顏色
CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);
//線框寬
CGContextSetLineWidth(context, 2.0);
// p1 -> p4
CGContextMoveToPoint(context, p1.x, p1.y);
CGContextAddLineToPoint(context, p4.x, p4.y);
CGContextStrokePath(context);
// 畫實心實體 設置填充顏色
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
// //p3.y - p2.y 高 最左邊的距離
CGContextFillRect(context, CGRectMake(p1.x - 14 / 2.0, p2.y, 14, p3.y - p2.y));
走勢圖上面的類似于成交量等
image.png
- (void)drawText:(CGRect)rect{
NSString *str = @"繪制的字符串";
NSMutableAttributedString *attributedStr = [[NSMutableAttributedString alloc] initWithString:str];
// 設置字符串字體大小以及顏色
[attributedStr setAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:18], NSForegroundColorAttributeName:[UIColor greenColor]} range:NSMakeRange(0, str.length)];
// 要繪制的區(qū)域
CGRect strRect = CGRectMake(50, 80, attributedStr.size.width, attributedStr.size.height);
// 給字符串添加一個弧形背景
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, [UIColor redColor].CGColor);
UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:strRect cornerRadius:attributedStr.size.height / 2.0];
CGContextAddPath(context, path.CGPath);
CGContextDrawPath(context, kCGPathEOFill);
// 繪制
[attributedStr drawInRect:strRect];
}