首页 > 代码库 > Quartz2D绘图

Quartz2D绘图

在viewController里,添加

 1   //创建一个基于UIImage的图形上下文
 2     UIGraphicsBeginImageContext(CGSizeMake(320, 450));
 3     //取出“当前”上下文,也就是上句话创建的上下文,返回CGContextRef类型
 4     CGContextRef ctx = UIGraphicsGetCurrentContext();
 5     //开始向上下文中增加路径:即开始绘图
 6     CGContextBeginPath(ctx);
 7     //画圆,第一个参数为上下文,第二个和第三个为圆点得xy坐标,第四个为圆半径,第五个为开始的弧度,第六个为结束的弧度,第七个为顺时针和逆时针(对应0和1)
 8     CGContextAddArc(ctx, 80, 90, 30, 0, 2*M_PI, 0);
 9     //设置填充颜色
10     CGContextSetRGBFillColor(ctx, 0.8, 0, 0, 1);
11     //填充颜色
12     CGContextFillPath(ctx);
13     //从上下文中取得UIImage对象
14     UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
15     //绘图完毕,撤销上下文
16     UIGraphicsEndImageContext();
17     
18     UIImageView *imageView = [[UIImageView alloc] initWithImage:img];
19     [self.view addSubview:imageView];

对于图形上下文的理解;

1.图形上下文是对战结构

2.UIGraphicsBeginImageContext新建的图形上下文位于堆栈顶端

3.UIGraphicsGetCurrentContext就是取出当前栈顶元素,也就是返回最后一次新建的上下文

4.UIGraphicsEndImageContext为去除当前栈顶元素,也就是撤销最后一次建立的上下文

同理,CGContextAddArcToPoint为画弧线,CGContextAddRect为画矩形,CGContextFillRect为画实心矩形,CGContextMoveToPoint和CGContextAddLineToPoint为画直线