Quartz2D中,还有以CGPath开头的API
path我们称之为路径,其实画出的东西都是沿着一条路径去画的
一个path就代表一条路径。如果要在上下文中绘制多个图形,这种情况下建议使用path。
我们用图形上下文绘图,没有操作路径,其实是系统默认给我们创建的有路径,
使用路径画圆
<span style="font-size:18px;">- (void)drawRect:(CGRect)rect {
// 获取上下文
CGContextRef context = UIGraphicsGetCurrentContext();
// 先把所有的路径定义好,然后一次性往上下文中添加
CGMutablePathRef path = CGPathCreateMutable();
// 设置圆的路径
CGPathAddEllipseInRect(path, NULL, CGRectMake(100, 100, 100, 100));
//添加弧的路径
//CGPathAddArc(<#CGMutablePathRef path#>, <#const CGAffineTransform *m#>, <#CGFloat x#>, <#CGFloat y#>, <#CGFloat radius#>, <#CGFloat startAngle#>, <#CGFloat endAngle#>, <#bool clockwise#>)
//添加 "线" 路径
//CGPathAddLines(<#CGMutablePathRef path#>, <#const CGAffineTransform *m#>, <#const CGPoint *points#>, <#size_t count#>)
// 把路径添加到上下文中
CGContextAddPath(context, path);
// 渲染
CGContextStrokePath(context);
// ARC环境下 c语言的资源不会自动释放,的手动释放
// 以create,retain,copy创建的数据需要手动释放
// 释放资源
CFRelease(path);
}
</span>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
长方形绘制方法总结:
1、指定4个点,然后渲染CGContextFillRect / CGContextStrokeRect
2、指定rect,然后渲染
3、使用UIKit的方法UIRectFill(实心) / UIRectFrame(空心)——此方法自动关联上下文、把图形画在UIView上