iOS-Quartz2D绘图的基础用法总结

在UIView的drawRect:方法中具体使用Quartz2D
1获取当前上下文
CGContextRef ctx = UIGraphicsGetCurrentContext(); 
2拼接图形(界面)
起点
CGContextMoveToPoint(ctx, 10, 10);
线段-从起点到终点
CGContextAddLineToPoint(ctx, 100, 100);
3 渲染
CGContextStrokePath(ctx); -stroke空心 -fill实心
⚠三角形:画两条线之后CGContextClosePath(ctx);关闭路径,连接终点和起点。
⚠四边形:CGContextAddRect(ctx, CGRectMake(x, y, w, h));
⚠线粗细:CGContextSetLineWidth(ctx, 10);
⚠笔颜色:CGContextSetRGBStrokeColor(ctx, r, g, b, a); -stroke空心 -fill实心
[[UIColor whiteColor] set]通用颜色 -setStroke空心色 -setFill实心颜色
⚠线头尾:CGContextSetLineCap(ctx, enum);
⚠转折点:CGContextSetLineJoin(ctx, enum);
⚠画椭圆:CGContextAddEllipseInRect(ctx, CGRect); -指定一个矩形就可以确定一个椭圆
⚠画圆形:把椭圆的CGRect给成正方形即可
⚠画圆弧:CGContextAddArc(ctx, x, y, r, sa, ea, cw); -x,y圆心 -r半径 -sa,ea开始/结束角度
-cw顺/逆时针,0顺1逆 -水平向右的方向是0度 -这方法也可以画圆
⚠画文字:NSString drawAtPoint/drawInRect withAttributtes:方法不用自己获取上下文
NSForegroundColorAttributeName/NSFontAttributeName
⚠画图片:UIImage drawAtPoint/drawInRect 方法类似与画文字 -drawINnRect会拉伸
drawAsPatternInRect方法 -在给定区域平铺,可以画花纹
⚠画曲线:CGContextAddQuadCurveToPoint(ctx, cx, cy, ex, ey)贝塞尔曲线

图形上下文栈
1保存状态:CGContextSaveGState(ctx);方法保存当前上下文状态
2恢复状态:CGContextRestoreGState(ctx);方法恢复之前保存的上下文状态
3保存相当于入栈,恢复相当于出栈。恢复到最近保存的状态。

矩阵操作
1CGContextScaleCTM(ctx, 0.5, 0.5);方法 -整体缩放
2CGContextRotateCTM(ctx, M_PI_4);方法 -整体旋转
3CGContextTranslateCTM(ctx, 0, 150);方法 -整体平移

裁减图片
1入栈初始上下文
2在上下文中生成一个形状用来当作裁减后的可见区域
3裁减:CGContextClip(ctx);
4把要裁减的图片放在要裁减的轮廓上面
5把上下文出栈,恢复到裁减以前

重绘-刷帧
1setNeedsDisplay方法,内部会清空绘制内容,重新调用drawRect方法
2setNeedsDisplayInRect方法,部分刷新,只刷新给出Rect区域

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值