Quartz2D二维画图引擎
这个二维画图引擎的功能很强大
一般苹果公司xcode 提供给我们的一些UI控件不能满足我们的需求
所以我们会自己定义控件
xcode 提供的全部控件都是由这个画图引擎画出来的
我们能够自己定义一些控件。完毕我们想要完毕的一些特定的功能
从而解决一些系统自己定义控件实现不了的功能
1.基本图形绘制
* 线段(线宽、线段样式)* 矩形(空心、实心、颜色)
* 三角形、梯形等形状
* 椭圆圆
* 圆弧
* 文字绘制
* 图片绘制(pattern)
* 图形上下文栈
以下是简单的 三角形和矩形的绘制
图形的绘制是用纯C写出来的。没有面向对象的思想
所以大家理解起来一定要区分!
// // MyDraw.m // 绘图 @implementation MyDraw //Quartz2D 是一个二维绘图引擎 //自己定义UI控件 //裁剪图片 - (void)drawRect:(CGRect)rect { draw4Rect(); } void draw4Rect() { //获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //绘图形 CGContextAddRect(ctx, CGRectMake(10, 10, 100, 100)); //绘制图形 //CGContextStrokePath(ctx); //实的图形 CGContextFillPath(ctx); } void drawTriangle() { // Drawing code //1.获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); //2.拼接图形 CGContextMoveToPoint(ctx, 10, 10); //加入一条线段到 CGContextAddLineToPoint(ctx, 100, 100); CGContextAddLineToPoint(ctx, 150, 40); //CGContextAddLineToPoint(ctx, 10, 10); //连接起点和终点 CGContextClosePath(ctx); //CGContextMoveToPoint(ctx, 20, 20); //3.渲染显示到view 上面 //以空心的形式画出来 CGContextStrokePath(ctx); } @end