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