画一根线
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)];
// 要绘制的区域
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];
}
网友评论