天天看點

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

}

繼續閱讀