Core Graphics初步使用

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);

Core Graphics初步使用_第1张图片
效果图.jpg

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

demo下载地址

https://github.com/1131916317/Graphics

你可能感兴趣的:(Core Graphics初步使用)