Quartz 2D绘图的一般步骤

自定义UIView使用路径绘图的步骤如下
  • 1 调用 UIGraphicsGetCurrentContext()函数获取CGContextRef
  • 2 调用CGContextBeginPath(CGContextRef __nullable c)函数开始定义路径
  • 3 调用如下函数绘制子路径
    这里写图片描述
  • 4 如果路径添加完成,调用CGContextClosePath()函数关闭路径
  • 5 设置路径绘制的相关属性:线宽,填充或路径颜色等
  • 6 调用CGContextStrokePath(CGContextRef __nullable c),CGContextEOFillPath(CGContextRef __nullable c),CGContextFillPath(CGContextRef __nullable c),CGContextDrawPath(CGContextRef __nullable c,
    CGPathDrawingMode mode)来填充路径或绘制路径边框,这些方法中最后一个方法可以代替前面几个方法,通过指定不同的CGPathDrawingMode。

内存中绘制图片

  通过扩展UIView,重写drawRect:方法进行绘图,这种方法是直接在UIView控件上绘制所有的图形,由于每次控件显示出来时,drawRect:方法都会被调用,这就意味着每次控件显示时都要重新绘制所有的图形,很显然这种性能很不好,有的时候需要在内存中绘制图片,这样即可以导出到手机本地,也可以上传的网络上。
  与直接在UIView上绘图不同,在内存中绘图时,需要开发者自己准备绘图环境,Quartz 2D 提供可一个非常敏捷的函数:    UIGraphicsBeginImageContext(CGSize size),该函数用于准备绘图环境,当图形绘制完成后,可以调用UIGraphicsEndImageContext()函数结束绘图和关闭绘图环境,
在内存中绘图的步骤如下
  • 1 调用UIGraphicsBeginImageContext(CGSize size)函数准备绘图环境
  • 2 调用 UIGraphicsGetCurrentContext()函数获取CGContextRef
  • 3 调用如下函数进行绘图
    这里写图片描述
  • 4 调用 UIGraphicsGetImageFromCurrentImageContext()函数获取当前绘制的图片
  • 5 调用UIGraphicsEndImageContext()函数结束绘图,并关闭绘图环境

参考文章:《疯狂iOS讲义》

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值