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