C级别绘制基本步骤

来源:互联网 发布:数据字典和数据流程图 编辑:程序博客网 时间:2024/05/22 03:26
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(1010), 10, [UIColor cyanColor].CGColor);

    

    //绘制线

    CGContextMoveToPoint(context, 100100);

    CGContextAddLineToPoint(context, 200200);

    CGContextDrawPath(context, kCGPathStroke);

    //绘制矩形

    CGContextAddRect(context, CGRectMake(10050100100));

    CGContextDrawPath(context, kCGPathStroke);

    //绘制椭圆形

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

    CGContextSetLineWidth(context, 5);

    CGContextAddEllipseInRect(context, CGRectMake(10050100100));

    CGContextDrawPath(context, kCGPathFillStroke);

    //绘制扇形

    CGContextMoveToPoint(context, 100300);

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

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

    CGContextAddArc(context, 100300100090.0/180.0*M_PI1);

    CGContextDrawPath(context, kCGPathFill);

  //绘制图片

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

    [image drawInRect:CGRectMake(200280100100)];

    //绘制文本

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

    NSString *str = @"Hello drawRect!";

    

    [str drawAtPoint:CGPointMake(50200withFont:[UIFont fontWithName:@"American Typewriter" size:30]];

    CGContextRestoreGState(context);

}





0 0
原创粉丝点击