美文网首页
股票走势图绘制基础学习

股票走势图绘制基础学习

作者: _会飞的鱼 | 来源:发表于2019-08-27 09:36 被阅读0次

    画一根线

    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];
    }
    

    相关文章

      网友评论

          本文标题:股票走势图绘制基础学习

          本文链接:https://www.haomeiwen.com/subject/wqjsectx.html