天了噜,脑子完全懵了,最起码说出来个上下文啊,连这个都给忘了,特此总结一下,并以此缅怀这次面试
Quartz2D的API来自于Core Graphics(这就是为什么CGContextRef是以CG开头),需要导入CoreGraphics(Xcode6之后不需要导入了)
图形上下文:是一个CGContextRef类型的数据
图形上下文的作用:
1.保存绘图信息、绘图状态
2.决定绘制的输出目标(绘制到什么地方去)(输出目标可以是PDF文件、Bitmap或者显示器的窗口上
Bitmap Graphics ContextPDF Graphics Context Window Graphics Context Layer Graphics Context Printer Graphics Context 自己画一个view 步骤: 1.新建一个类,继承自UIView 2.实现- (void)drawRect:(CGRect)rect方法,并在此方法中取得当前view的图形上下文 3.创建自己的绘制path,并根据path来绘制图形 4.利用图形上下文将绘制的所有内容渲染显示到view上面 当然,比如Bitmap的图形上下文就不必在- (void)drawRect:(CGRect)rect里面了,直接创建一个就可:
// 创建一个bitmap上下文 UIGraphicsBeginImageContextWithOptions(CGSizeMake(200, 200), NO, 0); // 获取bitmap上下文 CGContextRef ctr = UIGraphicsGetCurrentContext(); // 画圆 CGContextAddEllipseInRect(ctr, CGRectMake(50, 50, 100, 100)); // 渲染 CGContextStrokePath(ctr); // 从上下文获取画出的图片 UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); UIImageView *imageView = [[UIImageView alloc] initWithImage:img]; CGRect frame = imageView.frame; frame.origin = CGPointMake(50, 50); imageView.frame = frame; [self.view addSubview:imageView];
待续。。。
部分参考自:http://www.jianshu.com/p/eecffec3b7af