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(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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值