美文网首页JZ专题
Core Graphics初步使用

Core Graphics初步使用

作者: 太懒不想起名字 | 来源:发表于2015-12-30 21:09 被阅读130次

    view:
    使用Core Graphics之前需要指定一个用于绘图的图形上下文(CGContextRef),这个图形上下文会在每个绘图函数中都会被用到。
    - (void)drawRect:(CGRect)rect {
    //一个不透明类型的Quartz 2D绘画环境,相当于一个画布,你可以在上面任意绘画
    CGContextRef context = UIGraphicsGetCurrentContext();
    /**
    * 中间是你要实现哪个图形的代码(可以参考下文)
    */
    //关闭画布
    CGContextRelease(context);
    }

    • 画圆
      //画笔线的颜色:下面2种方法选其一
      //CGContextSetRGBStrokeColor(context,1,1,1,1.0);
      CGContextSetStrokeColorWithColor(context, UIColorFromRGB_10(160, 59, 64).CGColor);
      //画圆并填充颜
      //CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);//填充颜色
      CGContextSetLineWidth(context, 3.0);//线的宽度
      CGContextSetLineCap(context, kCGLineCapRound);
      //x,y为圆点坐标,startAngle为开始的弧度,endAngle为 结束的弧度,clockwise 0为顺时针,1为逆时针
      //startAngle为0默认是正90°方向的
      CGContextAddArc(context, 60, 60, 40, -M_PI/2 , M_PI/2*3 * kProgress , 0); //添加一个圆
      //kCGPathFill填充非零绕数规则,kCGPathEOFill表示用奇偶规则,kCGPathStroke路径,kCGPathFillStroke路径填充,kCGPathEOFillStroke表示描线,不是填充
      CGContextDrawPath(context, kCGPathStroke); //绘制路径加填充kCGPathFillStroke

    • 画椭圆
      CGRect aRect= CGRectMake(120, 20, 100, 60);
      CGContextSetRGBStrokeColor(context, 0.6, 0.9, 0, 1.0);
      CGContextSetLineWidth(context, 3.0);
      CGContextAddEllipseInRect(context, aRect); //参数:椭圆的坐标。
      CGContextDrawPath(context, kCGPathStroke);

    • 画三角形
      关键是选3个点,利用CGContextAddLines方法即可
      CGPoint points[3];//坐标点
      points[0] =CGPointMake(280, 90);//坐标1
      points[1] =CGPointMake(220, 90);//坐标2
      points[2] =CGPointMake(280, 20);//坐标3
      CGContextAddLines(context, points, 3);//添加线
      CGContextClosePath(context);//封起来
      CGContextDrawPath(context, kCGPathFillStroke);

    • 画矩形
      CGContextStrokeRect(context, CGRectMake(120, 120, 120, 20));
      CGContextSetLineWidth(context, 3.0);
      CGContextAddRect(context, CGRectMake(120, 120, 120, 20));

    • 绘制虚线
      CGFloat lengths[] = {10,10} 先画10个点再画10个点
      CGContextBeginPath(context);
      CGContextSetLineWidth(context, 2.0);
      CGFloat lengths[] = {10,10};
      CGContextSetLineDash(context, 0, lengths,2);
      CGContextMoveToPoint(context, 10.0, 160);
      CGContextAddLineToPoint(context, 240,160);
      CGContextStrokePath(context);
      CGContextClosePath(context);

    效果图.jpg

    本文持续更新,有问题欢迎指出

    demo下载地址

    https://github.com/1131916317/Graphics

    相关文章

      网友评论

        本文标题:Core Graphics初步使用

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