Quartz2D的API是纯C语⾔言的 Quartz2D的API来自于Core Graphics框架
数据类型和函数基本都以CG作为前缀
CGContextRef CGPathRef CGContextStrokePath(ctx);
如何利用Quartz2D绘制东西到view上?
首先,得有图形上下文,因为它能保存绘图信息,并且决定着绘制到什么地方去
其次,那个图形上下⽂必须跟view相关联,才能将内容绘制到view上面
⾃定义view的步骤:
(1)新建⼀个类,继承自UIView
(2)实现-(void)drawRect:(CGRect)rect⽅法.然后在这个⽅方法中 :
1)取得跟当前view相关联的图形上下文;
2)绘制相应的图形内容
3)利用图形上下文将绘制的所有内容渲染显示到view上面
首先绘制直线:首先需要在工程中导入 <CoreGraphics/CoreGraphics.h>的头文件。
- (void)drawRect:(CGRect)rect { // Drawing code // 1.取得和当前视图相关联的图形上下文(因为图形上下文决定绘制的输出目标)/ // 如果是在drawRect方法中调用UIGraphicsGetCurrentContext方法获取出来的就是Layer的上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); // 2.绘图(绘制直线), 保存绘图信息 // 设置起点 CGContextMoveToPoint(ctx, 30, 100); //设置终点 CGContextAddLineToPoint(ctx, 300, 300); //2. 设置绘图的状态 //设置线条的颜色// CGContextSetRGBStrokeColor(ctx, 0, 1.0, 0, 1);//第一种 [[UIColor blueColor]set];//第二种 //线条宽度 CGContextSetLineWidth(ctx, 12); //设置线条起点终点为圆角样式 CGContextSetLineCap(ctx, kCGLineCapRound); //设置线条的转角的样式为圆角 CGContextSetLineJoin(ctx, kCGLineJoinRound); //3. 渲染(绘制一条空心的线) CGContextStrokePath(ctx); //注意线条不能渲染为实心的// CGContextFillPath(ctx);}