iOS开发中Quartz2D绘图路径的使用以及条纹效果的实现

2020-01-14 17:52:05于海丽

代码示例:
复制代码
- (void)drawRect:(CGRect)rect
{
    //1.获取图形上下文
    CGContextRef ctx=UIGraphicsGetCurrentContext();

 

    //2.绘图
    //2.a 画一条直线
    //2.a.1创建一条绘图的路径
    //注意:但凡通过Quartz2D中带有creat/copy/retain方法创建出来的值都必须要释放
    CGMutablePathRef path=CGPathCreateMutable();
    
    //2.a.2把绘图信息添加到路径里
    CGPathMoveToPoint(path, NULL, 20, 20);
    CGPathAddLineToPoint(path, NULL, 200, 300);
    
    //2.a.3把路径添加到上下文中
    //把绘制直线的绘图信息保存到图形上下文中
    CGContextAddPath(ctx, path);
    
    
    //2.b画一个圆
    //2.b.1创建一条画圆的绘图路径(注意这里是可变的,不是CGPathRef)
    CGMutablePathRef path1=CGPathCreateMutable();
    
    //2.b.2把圆的绘图信息添加到路径里
    CGPathAddEllipseInRect(path1, NULL, CGRectMake(50, 50, 100, 100));
    
    //2.b.3把圆的路径添加到图形上下文中
    CGContextAddPath(ctx, path1);
    
    
    //3.渲染
    CGContextStrokePath(ctx);
    
    //4.释放前面创建的两条路径
    //第一种方法
    CGPathRelease(path);
    CGPathRelease(path1);
    //第二种方法
//    CFRelease(path);
}


效果:

 

iOS开发中Quartz2D绘图路径的使用以及条纹效果的实现

提示:如果是画线,那么就创建一条路径(path)用来保存画线的绘图信息,如果又要重新画一个圆,那么就可以创建一条新的路径来专门保存画圆的绘图信息。