【ios系列】-Quartz 2D常用方法介绍
2015-03-21 19:29
453 查看
Quartz 2D基本介绍
Quartz 2D是一个二维绘图引擎能够,绘制图形 : 线条\三角形\矩形\圆\弧等,绘制文字,绘制\生成图片(图像),读取\生成PDF,截图\裁剪图片,自定义UI控件(最为重要)等,
利用Quartz2D自定义view(自定义UI控件)的步骤
1:新建一个类,继承自UIView
2:实现- (void)drawRect:(CGRect)rect方法(系统会自动调用),然后在这个方法中:
1:取得跟当前view相关联的图形上下文 2:绘制相应的图形内容 3:利用图形上下文将绘制的所有内容渲染显示到view上面
使用步骤:
1:获得图形上下文 CGContextRef ctx = UIGraphicsGetCurrentContext(); 2:拼接路径(下面代码是搞一条线段) CGContextMoveToPoint(ctx, 10, 10); CGContextAddLineToPoint(ctx, 100, 100); 3:绘制路径 CGContextStrokePath(ctx);//空心 // CGContextFillPath(ctx);//实心
常用的方法:
新建一个起点 void CGContextMoveToPoint(CGContextRef c, CGFloat x, CGFloat y) 添加新的线段到某个点 void CGContextAddLineToPoint(CGContextRef c, CGFloat x, CGFloat y) 添加一个矩形 void CGContextAddRect(CGContextRef c, CGRect rect) 添加一个椭圆 void CGContextAddEllipseInRect(CGContextRef context, CGRect rect) 添加一个圆弧,规则圆弧 //x\y:圆心 //radius:半径 //startAngle:开始角度 //endAngle:结束角度 //clockwise:圆弧的伸展方向,0 :顺时针,1:逆时针 void CGContextAddArc(CGContextRef c, CGFloat x, CGFloat y, CGFloat radius, CGFloat startAngle, CGFloat endAngle, int clockwise) 贝塞尔曲线,不规则曲线 CGContextAddQuadCurveToPoint(CGContextRef c, CGFloat cpx, CGFloat cpy, CGFloat x, CGFloat y) 合并路径,连接两个点 CGContextClosePath(ctx); 设置颜色 [[UIColor blackColor] set]; 设置线条宽度 CGContextSetLineWidth(ctx, 10); 将当前的上下文copy一份,保存到栈顶(那个栈叫做”图形上下文栈”) void CGContextSaveGState(CGContextRef c) 将栈顶的上下文出栈,替换掉当前的上下文 void CGContextRestoreGState(CGContextRef c) 用view的setNeedsDisplay或者setNeedsDisplayInRect:时会重新调用drawRect:方法
相关文章推荐
- iOS Quartz2D 常用方法总结
- 【iOS开发-quartz2d】关于drwRect方法
- 【iOS】Quartz2D简单介绍
- iOS开发中使用Quartz2D绘制上下文栈和矩阵的方法
- iOS Quartz 2D介绍
- IOS开发UI系列之UIView类的常用属性与方法
- IOS UIButton 常用方法介绍
- iOS开发UI篇—Quartz2D简单介绍
- AJ学IOS(28)UI之Quartz2D简单介绍
- iOS开发UI篇—Quartz2D简单介绍
- iOS开发UI篇—Quartz2D简单介绍
- IOS开发—Quartz 2D介绍
- 猫猫学IOS(二十八)UI之Quartz2D简单介绍
- iOS开发UI篇—Quartz2D简单介绍
- AppDelegate.m中的常用的方法介绍,以及ios程序的状态
- iOS开发UI篇—Quartz2D简单介绍
- IOS_Quartz2D_水印缩略图_PDF_setNeedsDisplay方法内部自动调用drawRect
- iOS开发UI篇—Quartz2D简单介绍
- IOS开发UI系列之常用控件 UILabel, UITextField, UIButton, UIImageView等常用属性与方法
- iOS小明开发笔记(十一) (Quartz2D简单介绍)