Quartz 2D:初识

在UIView中重写drawRect方法

- (void)drawRect:(CGRect)rect {

    [self drawLine];

}

 

#pragma mark 画线操作

- (void)drawLine{

    //1、获取上下文-UIView对应的上下文

    CGContextRef context = UIGraphicsGetCurrentContext();

    

    //2、创建可变路径并设置路径

    CGMutablePathRef path = CGPathCreateMutable();

      //1设置起始点

    CGPathMoveToPoint(path, NULL, 50, 50);

      //2设置目标点

    CGPathAddLineToPoint(path, NULL, 200, 200);

    

    CGPathAddLineToPoint(path, NULL, 50, 200);

      //3封闭路径:a、直接指定目标点

//    CGPathAddLineToPoint(path, NULL, 50, 50);

               //b、使用关闭路径方法

    CGPathCloseSubpath(path);

    //3、将路径添加到上下文

    CGContextAddPath(context, path);

    

    //4、设置上下文属性

         /*

     red  0~1.0  red / 255

     alpha   透明度  0~1.0  ( 0 :完全透明)

     提示:1、在使用rgb颜色设置时,不要同时指定rgb 和 alpha ,否则会对性能造成一定影响

          2、默认线条和填充颜色都是黑色

         */

      //1设置线条颜色

//    CGContextSetRGBStrokeColor(context, 1.0, 0.0, 0.0, 1.0);

    CGContextSetRGBFillColor(context, 0.0, 1.0, 0.0, 1.0);

      //2设置线条宽度

    CGContextSetLineWidth(context, 5.0f);

      //3设置线条的顶点

    CGContextSetLineCap(context, kCGLineCapRound);

      //4设置线条的连接点样式

    CGContextSetLineJoin(context, kCGLineJoinBevel);

      //5设置线条的虚线样式

         /*

     虚线的参数:context

               phase 相位,虚线的起始位置通常使用0即可,从头开始画虚线

               lengths长度的数组

               count lengths数组的个数

         */

    CGFloat lengths[2] = {20.0,10.0};

    CGContextSetLineDash(context, 0.0, lengths, 2);

    

    //5、绘制路径

         /*

     kCGPathStroke      画线(空心)

     kCGPathFill        填充(实心)

     kCGPathFillStroke  既画线又填充

        */

    CGContextDrawPath(context, kCGPathStroke);

    

    //6、释放路径

    CGPathRelease(path);

 

posted @ 2016-06-15 15:13  Miracle_H  阅读(174)  评论(0编辑  收藏  举报