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