股票走势图绘制基础学习

画一根线

股票走势图绘制基础学习_第1张图片
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);
}

蜡烛图 空心

股票走势图绘制基础学习_第2张图片
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));
}

蜡烛图 实心

股票走势图绘制基础学习_第3张图片
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));

走势图上面的类似于成交量等


股票走势图绘制基础学习_第4张图片
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];
}

你可能感兴趣的:(股票走势图绘制基础学习)