天天看点

C级别绘制基本步骤

C语法级别绘画:     一,基本步骤:       1, 获取画布        CGContextRef context = UIGraphicsGetCurrentContext();

      2, 勾勒        CGContextMoveToPoint(context,100,100);        CGContextAddLineToPoint(context,100,200);        …       //  画线

       3,  调色                CGContextSetRGBFillColor(context,红,绿,蓝,透明度);// 画笔上色

       4,  上色             CGContextDrewPath(context,kCGPathFill);// 绘画

  注意:             绘制后的程序路径消失了,但是画笔的状态还在. 所以需要绘画前进行状态的保存: CGContextSaveState(context); 绘画完之后 恢复状态:  CGContextRestoreGState(context)

     层次结构:

     UIKit

     Core Animation             C      Core Graphics                C        OC      System/Hardware          绘制api     绘制Demo:

- (void)drawRect:(CGRect)rect

{

    CGContextRef context = UIGraphicsGetCurrentContext();

    CGContextSaveGState(context);

    //设置阴影

    CGContextSetShadowWithColor(context, CGSizeMake(10, 10), 10, [UIColor cyanColor].CGColor);

    //绘制线

    CGContextMoveToPoint(context, 100, 100);

    CGContextAddLineToPoint(context, 200, 200);

    CGContextDrawPath(context, kCGPathStroke);

    //绘制矩形

    CGContextAddRect(context, CGRectMake(100, 50, 100, 100));

    CGContextDrawPath(context, kCGPathStroke);

    //绘制椭圆形

    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor);

    CGContextSetLineWidth(context, 5);

    CGContextAddEllipseInRect(context, CGRectMake(100, 50, 100, 100));

    CGContextDrawPath(context, kCGPathFillStroke);

    //绘制扇形

    CGContextMoveToPoint(context, 100, 300);

// x.y代表圆心 100为半径 开始弧度 结束弧度 最后一个参数 顺逆时针 0代表顺时针

    CGContextSetFillColorWithColor(context, [UIColor colorWithRed:97.0/255 green:145.0/255 blue:17.0/255 alpha:1].CGColor);

    CGContextAddArc(context, 100, 300, 100, 0, 90.0/180.0*M_PI, 1);

    CGContextDrawPath(context, kCGPathFill);

  //绘制图片

    UIImage *image = [UIImage imageNamed:@"yangmi10.jpg"];

    [image drawInRect:CGRectMake(200, 280, 100, 100)];

    //绘制文本

    CGContextSetFillColorWithColor(context, [UIColor blueColor].CGColor);

    NSString *str = @"Hello drawRect!";

    [str drawAtPoint:CGPointMake(50, 200) withFont:[UIFont fontWithName:@"American Typewriter" size:30]];

    CGContextRestoreGState(context);

}

继续阅读